特殊符号在使用 XDocument.Load 时消失
本文关键字:Load 消失 XDocument 特殊符号 | 更新日期: 2023-09-27 18:30:27
据
我所知,XML中有几个符号应该被替换,因为它们在XML中以纯形式无效:
< - <
& - &
> - >
" - "
' - '
所以,我正在尝试使用XDocument.Load(string uri)加载xml文档。例如,我的xml文档字符串如下所示:
<net name="<const0>_1"/>
但是当我的xml被加载时,这个字符串在XDocument中表示为。
<net name="<const0>_1"/>
我尝试使用 xdocument 保存它。保存(字符串 uri),但结果 LT 和 GT 符号没有被替换回 <和>它看起来仍然像<和>。实际上,当我再次加载它时,没有抛出异常。这让我感到困惑。如果这些符号无效,它们怎么会存在于保存的 xml 文件中?如何保存带有特殊符号替换的 xml 文件?我正在读取的 xml 文件和我要保存的 XDocument 有一个使用 UTF-8 编码的声明。和>和>
谢谢!
在属性中,<
和>
字符是有效的,这就是它们不被替换的原因。在文本元素中,它们始终被实体化:
<net>
<name><const0>_1</name>
</net>
同样,允许将"
和'
作为 Text 元素,但将根据括起来的引号类型在属性中替换。
如何保存带有特殊符号替换的 xml 文件?
你不需要关心这个。基础XmlWriter
将执行必要的替换。
"Q 3.23: XML 中有哪些特殊字符?
Just five: < (<), & (&), > (>), " ("), and ' (')."
http://xml.silmaril.ie/specials.html