我有一个像这样的简单xml文件:
<xml>
<check>
<a>b<</a>
<b>
<test>asdf</test>
</b>
<test>jj&j</test>
</check>
</xml>
我想“双重转义”所有特殊字符,因此它会导致&lt;
和&amp;
带有简单的linq到xml语句。 xml应该仍然有效,只需要转义值。
有人知道解决方案吗?
生成的xml应如下所示:
<xml>
<check>
<a>b&lt;</a>
<b>
<test>asdf</test>
</b>
<test>jj&amp;j</test>
</check>
</xml>
提前致谢
答案 0 :(得分:1)
如果您知道文本节点中只有编码实体,则只需用&
替换&
的每个实例。
虽然为什么你甚至需要做这样的事情逃避我。
答案 1 :(得分:1)
您不能在元素,属性或声明的名称中包含&
,因此唯一可能的位置是值(文本节点和属性值)。因为这正是你想要做的替换,所以简单的盲目替换是要走的路。是否应该使用string.Replace()
或流媒体方法取决于使用情况和整个身体的大小。
我同意其他人的意见,这闻起来很糟糕。