... Я пытаюсь объяснить это по-другому. У меня есть строка вроде этого:
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).
Есть ли идеи для решения? Если регулярное выражение - лучшее решение, как выглядит регулярное выражение? Благодарю.
Использовать 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);
}