据我所知,XML中有几个符号应该被替换,因为它们在xml中的纯格式无效:
< - <
& - &
> - >
" - "
' - '
所以,我尝试使用XDocument.Load(字符串uri)加载xml文档。 例如,我在我的xml文档字符串中看起来像这样:
<net name="<const0>_1"/>
但是当加载我的xml时,这个字符串在XDocument中表示为
<net name="<const0>_1"/>
我尝试使用xdocument.Save(字符串uri)保存它,但结果LT和GT符号没有被&amp;替换回来。 LT;和&amp; GT;它仍然看起来像&lt;和&gt;。实际上,当我再次加载它时,没有抛出任何异常。 这让我感到困惑。如果这些符号无效,它们如何在保存的xml文件中存在?如何用特殊符号替换保存我的xml文件?我读取的xml文件和我要保存的XDocument都有一个UTF-8编码的声明。
谢谢!
答案 0 :(得分:1)
在属性中,<
和>
字符有效,这就是为什么不替换它们的原因。在Text元素中,它们始终具有权限:
<net>
<name><const0>_1</name>
</net>
同样,"
和'
被允许作为Text元素,但将根据封闭的引用类型在属性中替换。
如何使用特殊符号替换来保存我的xml文件?
你不需要关心它。基础XmlWriter
将进行必要的替换。
答案 1 :(得分:0)
“问题3.23:XML中有哪些特殊字符?
Just five: < (<), & (&), > (>), " ("), and ' (')."