使用 XDocument.Load 时特殊符号消失
Special symbols disappear when using XDocument.Load
据我所知,XML 中有几个符号应该被替换,因为它们在 xml 中的纯形式无效:
< - <
& - &
> - >
" - "
' - '
因此,我正在尝试使用 XDocument.Load(字符串 uri)加载 xml 文档。
例如,我的 xml 文档字符串如下所示:
<net name="<const0>_1"/>
但是当我的 xml 被加载时,这个字符串在 XDocument 中表示为
<net name="<const0>_1"/>
我尝试使用 xdocument.Save(string uri) 保存它,但结果 LT 和 GT 符号没有被替换回 。实际上,当我再次加载它时,没有抛出异常。
这让我很困惑。如果这些符号无效,它们怎么会存在于已保存的 xml 文件中?如何保存替换特殊符号的 xml 文件?我正在读取的 xml 文件和我要保存的 XDocument 有一个使用 UTF-8 编码的声明。
谢谢!
"Q 3.23: XML中的特殊字符是什么?
Just five: < (<), & (&), > (>), " ("), and ' (')."
在属性中,<
和 >
字符是有效的,这就是它们没有被替换的原因。在 Text 元素中,它们总是实体化的:
<net>
<name><const0>_1</name>
</net>
同样,"
和 '
可以作为文本元素,但将在属性中替换,具体取决于封闭的引号类型。
How can I save my xml file with special symbols replacement?
你不需要关心那个。底层 XmlWriter
将进行必要的替换。
据我所知,XML 中有几个符号应该被替换,因为它们在 xml 中的纯形式无效:
< - <
& - &
> - >
" - "
' - '
因此,我正在尝试使用 XDocument.Load(字符串 uri)加载 xml 文档。 例如,我的 xml 文档字符串如下所示:
<net name="<const0>_1"/>
但是当我的 xml 被加载时,这个字符串在 XDocument 中表示为
<net name="<const0>_1"/>
我尝试使用 xdocument.Save(string uri) 保存它,但结果 LT 和 GT 符号没有被替换回
谢谢!
"Q 3.23: XML中的特殊字符是什么?
Just five: < (<), & (&), > (>), " ("), and ' (')."
在属性中,<
和 >
字符是有效的,这就是它们没有被替换的原因。在 Text 元素中,它们总是实体化的:
<net>
<name><const0>_1</name>
</net>
同样,"
和 '
可以作为文本元素,但将在属性中替换,具体取决于封闭的引号类型。
How can I save my xml file with special symbols replacement?
你不需要关心那个。底层 XmlWriter
将进行必要的替换。