Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
75 / 44 / 17
Регистрация: 11.03.2013
Сообщений: 523
Записей в блоге: 4
1
.NET 4.x

Замена не слова а предложений внутри rtb и замена внутри тегов

29.08.2018, 11:13. Показов 884. Ответов 14
Метки нет (Все метки)

Доброго времени господа.
Помогите с проблемой. Есть текст, много текста в Richtxt
Внутри этого текста нужно найти два предложения.
C#
1
string a = @"<obs version=""7.0""><channel>";
которое нужно заменить на
C#
1
string replaceA = @"<obs version=""7.0"" ns:contains=""http://domain.ru"" ns2:a=""http://domain.ru"" ns3:test=""http://domainx.ru"">\r<channel> "
Метод замены Replace не работает
C#
1
2
string txtRich = rtxtbox.Text;
txtRich = txtRich.Replace(Convert.ToChar(a), Convert.ToChar(replaceA));
Говорят мне что мол это не одна строка. Я согласен с отладчиком.

и самое непонятное, есть тег <caramba>
Код
 <caramba>текст текст текст </caramba>
как поменять содержимое внутри этих тегов?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2018, 11:13
Ответы с готовыми решениями:

Замена текста внутри тегов
Здравствуйте, возникла такая ситуация. Данные сохраняются у меня на сервере в виде:...

Замена значений внутри тегов XML/TXT
День добрый, есть функция, помогите адаптировать функцию для текстового документа или xml файла....

Замена числа внутри матрицы
В заданной матрице В(N,N) найти MIN элемент в каждой строке и записать его на место первого...

Замена стоимости внутри текста ячейки
Добрый день. Огромная просьба помочь. Имеется более 1000 строк прайса. В одном из столбцов -...

14
Эксперт .NET
7557 / 5046 / 1202
Регистрация: 25.05.2015
Сообщений: 15,375
Записей в блоге: 14
29.08.2018, 11:16 2
Если это XML, почему вы его не правите с помощью XDocument?
0
75 / 44 / 17
Регистрация: 11.03.2013
Сообщений: 523
Записей в блоге: 4
29.08.2018, 11:30  [ТС] 3
Цитата Сообщение от Rius Посмотреть сообщение
Если это XML, почему вы его не правите с помощью XDocument?
Класс XDocument для меня не понятен, мало примеров я смотрел по нему.
Поэтому документ открываю как простой текст.

Там есть пример поиска по тегам?
0
Эксперт .NET
7557 / 5046 / 1202
Регистрация: 25.05.2015
Сообщений: 15,375
Записей в блоге: 14
29.08.2018, 11:38 4
Там есть ВСЁ. И даже больше.

Добавлено через 35 секунд
Для работы с XML неогромного размера это то, что нужно.

Добавлено через 2 минуты
Цитата Сообщение от anomal6 Посмотреть сообщение
мало примеров я смотрел по нему.
C# 6.0 in a Nutshell → Chapter 10 → LINQ to XML.
0
75 / 44 / 17
Регистрация: 11.03.2013
Сообщений: 523
Записей в блоге: 4
29.08.2018, 13:05  [ТС] 5
Цитата Сообщение от Rius Посмотреть сообщение
Для работы с XML неогромного размера это то, что нужно.
Много там ньюансов. С тхт будет проще
элемнетарный ньюанс
C#
1
2
3
 XElement test= new XElement("obs",
                new XAttribute("version", "7.0"),
                new XAttribute("ns:contains", "http://domain.ru"),
получу Екзепшн
Код
System.Xml.XmlException: "Знак ":", шестнадцатеричное значение 0x3A, не может использоваться в именах."
0
Администратор
Эксперт .NET
13384 / 10891 / 4482
Регистрация: 17.03.2014
Сообщений: 21,964
Записей в блоге: 1
29.08.2018, 13:08 6
anomal6, ньюансы безусловно есть, но все-таки проще разобраться как правильно работать с XML чем работать с ним как с текстом. В будущем окупится за счет большей надежности кода.
0
Эксперт .NET
7557 / 5046 / 1202
Регистрация: 25.05.2015
Сообщений: 15,375
Записей в блоге: 14
29.08.2018, 13:11 7
Цитата Сообщение от anomal6 Посмотреть сообщение
Много там ньюансов. С тхт будет проще
Если не хотите учиться, проще заплатить тому же фрилансеру.
Цитата Сообщение от anomal6 Посмотреть сообщение
получу Екзепшн
А если сунуть пальцы в розетку - убъёт. Давайте всё переведём на лошадиную тягу.

Документ откуда-то берётся? Или так, выдуманный кусок?
0
75 / 44 / 17
Регистрация: 11.03.2013
Сообщений: 523
Записей в блоге: 4
29.08.2018, 13:45  [ТС] 8
Цитата Сообщение от Rius Посмотреть сообщение
Документ откуда-то берётся? Или так, выдуманный кусок?
Документ генерируется, rss код
0
Эксперт .NET
7557 / 5046 / 1202
Регистрация: 25.05.2015
Сообщений: 15,375
Записей в блоге: 14
29.08.2018, 13:48 9
Ну так покажите этот XML документ уже.

Добавлено через 49 секунд
Только не говорите, что вы его составляете из отдельных строк, конкатенацией........
0
75 / 44 / 17
Регистрация: 11.03.2013
Сообщений: 523
Записей в блоге: 4
29.08.2018, 15:17  [ТС] 10
Цитата Сообщение от Rius Посмотреть сообщение
Только не говорите, что вы его составляете из отдельных строк, конкатенацией
Именно
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public string fileName = "rss.xml";
        private void btnCreateXML_Click(object sender, EventArgs e)
        {
           
 
           
                
          
            XDocument doc = new XDocument(
                    new XElement("rss",
                            new XAttribute("version", "2.0"),
                            new XAttribute(XNamespace.Xmlns + "yandex", "http://news.yandex.ru"),
                            new XAttribute(XNamespace.Xmlns + "media", "http://search.yahoo.com/mrss/"),
                            new XAttribute(XNamespace.Xmlns + "turbo", "http://turbo.yandex.ru"),
                    new XElement("channel",
                            new XElement("title", new XCData(txtTitle.Text)),
                            new XElement("link", new XCData(txtLink.Text)),
                            new XElement("description", new XCData(rtxtDescr.Text)) ,
                            new XElement("pubDate", dPicker.Value)
                           )));
 
                
                doc.Save(fileName);
                MessageBox.Show("XML документ создан ");
           
        }


После того как создал, хочу считать что создал, ну или допустим сгенерировал, и поменять не правильные компоненты
0
Администратор
Эксперт .NET
13384 / 10891 / 4482
Регистрация: 17.03.2014
Сообщений: 21,964
Записей в блоге: 1
29.08.2018, 16:51 11
Цитата Сообщение от anomal6 Посмотреть сообщение
После того как создал, хочу считать что создал, ну или допустим сгенерировал, и поменять не правильные компоненты
Делай по аналогии. Как работать с пространствами имен ты уже знаешь судя по всему.
C#
1
2
3
XDocument doc = XDocument.Load(fileName);
// Модификация
// ...
Или это и не получается? В таком случае выложи весь xml документ.
0
75 / 44 / 17
Регистрация: 11.03.2013
Сообщений: 523
Записей в блоге: 4
29.08.2018, 18:00  [ТС] 12
Цитата Сообщение от OwenGlendower Посмотреть сообщение
ли это и не получается? В таком случае выложи весь xml документ.
Я пока не дошёл до поиска в документе
А учиться приходится на ходу
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru">
  <channel>
    <title><![CDATA[Test]]></title>
    <link><![CDATA[]]></link>
    <description><![CDATA[первая записька]]></description>
    <pubDate>2018-08-29T18:49:29.0932248+04:00</pubDate>
    <item turbo="true">
      <title><![CDATA[Test2]]></title>
      <link><![CDATA[http://domain.com/test1]]></link>
      <yandex:full-text>2  записька</yandex:full-text>
      <description><![CDATA[2  записька]]></description>
      <pubDate>2018-08-29T18:49:29.0932248+04:00</pubDate>
    </item>
    <item turbo="true">
      <title><![CDATA[Test23]]></title>
      <link><![CDATA[http://domain.com/test3]]></link>
      <yandex:full-text>3 записька</yandex:full-text>
      <description><![CDATA[3 записька]]></description>
      <pubDate>2018-08-29T18:49:29.0932248+04:00</pubDate>
    </item>
  </channel>
</rss>
А вот так генерирует RSS CMS
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0"?>
<rss version="2.0"><channel><title>#x43C;ы</title><link>https://domain.com/index.php?/rss/1-%D0%BC%D0%BC%D1%8B.xml/</link><description>ПО пtext text text#x442;уп</description><language>en</language><item><title>Прtext text textа text text textавки</title><link><![CDATA[https://domain.com/index.php?/topic/%D0%B8/&do=findComment&comment=21]]></link><description>435;!
 
 
 
    и.
 
 
 
    ёж больше.
 
 
 
    ает.
 
 
 
    ет Ваши ст отчёт.
 
 
 
     
 
 
Banking.zip</description><pubDate>Tue, 28 Aug 2018 16:20:10 +0400</pubDate></item>
В общем вообще не красиво, и нет нужных атрибутов.
Задача в дальнейшем считать, и поменять\Добавить нужные атрибуты

Добавлено через 5 минут
Весь текст идёт ввиде & # x 4 4 0 ;& # x 4 3 0 ; & # x 4 4 1 ; < == рас
Но сайт их подменяет автоматически
0
Эксперт .NET
7557 / 5046 / 1202
Регистрация: 25.05.2015
Сообщений: 15,375
Записей в блоге: 14
29.08.2018, 18:13 13
Зачем вам столько CDATA?
XML документ сформировали.
В чём дальше загвоздка? И с каким из документов?
0
Администратор
Эксперт .NET
13384 / 10891 / 4482
Регистрация: 17.03.2014
Сообщений: 21,964
Записей в блоге: 1
29.08.2018, 18:23 14
anomal6, в приведенном документе нет узла obs который ты упоминал в первом сообщении. Поэтому могу дать только общие советы. Искать узлы можно с помощью методов Element/Elements у узлов. Или с помощью XPath. Добавлять с помощью метода Add().
0
75 / 44 / 17
Регистрация: 11.03.2013
Сообщений: 523
Записей в блоге: 4
30.08.2018, 08:00  [ТС] 15
Цитата Сообщение от OwenGlendower Посмотреть сообщение
anomal6, в приведенном документе нет узла obs который ты упоминал в первом сообщении
я сначала переименовал узлы. Не знай для чего. За поиск спасибо, учту
Цитата Сообщение от Rius Посмотреть сообщение
Зачем вам столько CDATA?
RSS CMS таг генерировал, думал что нужны)))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2018, 08:00

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Замена значений внутри массива Matlab
Всем доброго времени суток! Имеется матрица A размером со значениями от -1 до 1. Необходимо...

Word: поиск/замена по тексту и внутри надписей по формату
Столкнулся с проблемой поиска/заменой форматов после конвертации PDF=&gt;DOC. Некоторый текст...

Сравнение и замена текста внутри ячейки на текст из базы
Привет всем! В прикрепленном файле есть в документа. Первый файл - это документ, в котором...

Замена символов только внутри скобок с использованием регулярных выражений
Здравствуйте! С праздниками! Возможно ли регулярными выражениями добиться замены всех точек после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.