字符串与 HTML - 替换元素/字符串的一部分 (??正则表达式)

本文关键字:字符串 一部分 正则表达式 HTML 替换 元素 | 更新日期: 2023-09-27 18:33:13

...我试图用另一种方式解释它。我有一个这样的字符串:

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> ..."

现在我想编辑字符串(c#)的一部分->例如:

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)。

有什么解决方案的想法吗?如果正则表达式是最佳解决方案,那么正则表达式是什么样的?谢谢。

字符串与 HTML - 替换元素/字符串的一部分 (??正则表达式)

使用 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);
}