[英]Special symbols disappear when using XDocument.Load
據我所知,XML中有幾個符號,應該替換,因為它們在xml中的純格式中無效:
< - <
& - &
> - >
" - "
' - '
因此,我正在嘗試使用XDocument.Load(string uri)加載xml文檔。 例如,我的xml文檔中的字符串如下所示:
<net name="<const0>_1"/>
但是當我的xml加載時,此字符串在XDocument中表示為
<net name="<const0>_1"/>
我嘗試使用xdocument.Save(string uri)保存它,但結果是LT和GT符號沒有被替換為&lt; &gt; 它仍然看起來像<和>。 實際上,當我再次加載它時,沒有拋出異常。 這讓我感到困惑。 如果這些符號無效,它們怎么可能存在於已保存的xml文件中? 如何保存帶有特殊符號替換的xml文件? 我正在讀取的xml文件和要保存的XDocument都有一個使用UTF-8編碼的聲明。
謝謝!
在屬性中, <
和>
字符有效,這就是為什么不替換它們的原因。 在“文本”元素中,它們始終被實體化:
<net>
<name><const0>_1</name>
</net>
同樣, "
和'
可以作為Text元素使用,但會根據包圍的引用類型在屬性中替換。
如何保存帶有特殊符號替換的xml文件?
您無需關心。 基礎XmlWriter
將進行必要的替換。
“問題3.23:XML中的特殊字符是什么?
Just five: < (<), & (&), > (>), " ("), and ' (')."
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.