该程序采用一个混合在html和自定义标签之间的xml。我想替换这个自定义标记:
<replaceable />
有了这个:
Some text
<div>Other text</div>
主要问题是我可以用来正确处理XML的任何框架或库(如LinqToXML或System.Xml)都无法获取整个内容。如果尝试这样:
// replaceable is an XElement for <replaceable />
// content is a string
replaceable.ReplaceWith(content)
它最终作为转义文本结束,并被视为XElement的值。
如果我尝试XElement.Parse()方法,就像这里提出的其他问题一样,我在开头会丢失纯文本,只剩下<div>
。
有没有办法在不使用所有正则表达式的情况下进行这种替换?
答案 0 :(得分:0)
您需要在解析之前将内容包装在标记中,以便XElement.Parse()
可以为您提供所有节点。
var outer = XElement.Parse("<dummy>" + content + "</dummy>");
replaceable.ReplaceWith(outer.Nodes());
答案 1 :(得分:0)
使用字符串,您将用文本节点替换元素。您想首先创建一个新的XElement
并将其用于替换。
replaceable.ReplaceWith(new XElement("div", otherText));