【发布时间】:2019-11-21 07:49:44
【问题描述】:
我想用字符串替换一个特定的节点。
它成功替换了节点但不是"<div>",而是出现"&lt;div&gt;"
我应该怎么做才能使它成为"<div>"?
我已经尝试过 XElement.Parse,但是当我用 "</div><div>" 替换节点时它会给我错误
foreach (var node in Nodes)
{
var newElement = XElement.Parse("</div><div>");
node.ReplaceWith(sbb.ToString);
}
【问题讨论】:
-
你能发布你正在使用的确切代码吗?
-
确实,minimal reproducible example 在这里会很有帮助。听起来您并没有真正尝试用字符串替换节点,而是用另一个元素替换 - 所以您应该构建
XElement来替换它。如果您传入一个字符串,LINQ to XML 会认为您的意思是 text 内容,这就是它转义尖括号的原因。 -
您没有 XML。你有html。 Xml Linq (XDocument/XElement) 不会一直使用 html。如果您在 html 中嵌入了 xml,请使用:System.Net.WebUtility.HtmlDecode(string xml)
-
它会给我“意外的结束标签错误”。 XElement.Parse 是否允许以结束标记开头?像这样 XElement.Parse("");