簡體   English   中英

使用XDocument.Load時,特殊符號消失

[英]Special symbols disappear when using XDocument.Load

據我所知,XML中有幾個符號,應該替換,因為它們在xml中的純格式中無效:

< - &lt;
& - &amp;
> - &gt;
" - &quot;
' - &apos;

因此,我正在嘗試使用XDocument.Load(string uri)加載xml文檔。 例如,我的xml文檔中的字符串如下所示:

        <net name="&lt;const0&gt;_1"/>

但是當我的xml加載時,此字符串在XDocument中表示為

        <net name="<const0>_1"/>

我嘗試使用xdocument.Save(string uri)保存它,但結果是LT和GT符號沒有被替換為&lt; &gt; 它仍然看起來像<和>。 實際上,當我再次加載它時,沒有拋出異常。 這讓我感到困惑。 如果這些符號無效,它們怎么可能存在於已保存的xml文件中? 如何保存帶有特殊符號替換的xml文件? 我正在讀取的xml文件和要保存的XDocument都有一個使用UTF-8編碼的聲明。

謝謝!

在屬性中, <>字符有效,這就是為什么不替換它們的原因。 在“文本”元素中,它們始終被實體化:

<net>
    <name>&lt;const0&gt;_1</name>
</net>

同樣, "'可以作為Text元素使用,但會根據包圍的引用類型在屬性中替換。

如何保存帶有特殊符號替換的xml文件?

您無需關心。 基礎XmlWriter將進行必要的替換。

“問題3.23:XML中的特殊字符是什么?

 Just five: &lt; (<), &amp; (&), &gt; (>), &quot; ("), and &apos; (')."

http://xml.silmaril.ie/specials.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM