строка с HTML - заменить элементы / часть строки (?? Regex)

0

... Я пытаюсь объяснить это по-другому. У меня есть строка вроде этого:

string myText = "... <p class="MsoNormal">bla gezeichnete bla zuzustellen.</p><p>10.0080</p><p class="MsoNormal">text text text</p><p class="p--heading-2"><span class="anchor--on anchorname--160p001200">Schriftliche Bearbeitung</span</p><p>1.02</p><p>Eine blablabla text text</p><p>1.010</p><p>Ein text text (look <a xlink:type="simple" xlink:show="replace" xlink:role="17160" xlink:actuate="onRequest" xlink:href="link/a1000-text.xml">10.0060</a>) text text text</p> ..."

Теперь я хочу отредактировать часть строки (С#) → например:

myText = myText.Replace("<p class="p--heading-2"><span class="anchor--on anchorname--160p00">Schriftliche Bearbeitung</span</p>", "<h2><a name="anchorname">Schriftliche Bearbeitung</a></p>");

Проблема заключается в значениях переменных (для примера, анкерное имя нуждается в разных значениях), и поэтому я не могу заменить строку.

Комментарий к первому ответу: я не хочу использовать стороннее программное обеспечение поставщика (соответствующее HtmlAgilityPack).

Есть ли идеи для решения? Если регулярное выражение - лучшее решение, как выглядит регулярное выражение? Благодарю.

Теги:
string
replace

1 ответ

0

Использовать HtmlAgilityPack не регулярное выражение

var doc = new HtmlDocument();
doc.LoadHtml(html);

var nodes = doc.DocumentNode.SelectNodes("//p[@class='p--heading-2']");
foreach (HtmlNode htmlNode in nodes)
{
    var newNodeStr = htmlNode.InnerText;
    var newNode = HtmlNode.CreateNode("<h3><a>"+newNodeStr+"</a></h3>");
    htmlNode.ParentNode.ReplaceChild(newNode, htmlNode);
}
  • 0
    Спасибо за ваш ответ :) К сожалению, я не уверен, поможет ли этот путь. Не могли бы вы объяснить, как я могу использовать «HtmlDocument» со строкой? Какое пространство имен является "HtmlDocument"?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню