2010-08-25 49 views
2

我有一個看起來像這樣的XML元素:關於產品XmlElement.InnerText和空白

<content locale="en"> </content> 

括號內的東西之間的文本由單個空格字符。當我將XML加載到如下瀏覽一下上述元素的XmlElement對象,我希望:

contentElement.InnerText.Length == 1; // InnerText should be a single space character 

,而是我所得到的是

contentElement.InnerText.Length == 0; 

假設這不是微軟的DOM中的錯誤實現,這是我不知道的XML/DOM規範的一個特性嗎?如果是這樣,我有什麼選擇,只是在XML寫出時添加轉義的空白字符?

回答

1

如果你想有空白保存XML文件內被解析,請考慮使用<![CDATA[]]>節,讓解析器知道它應該從字面上藉此字符數據後...

+0

這當然有效;謝謝。 – 2010-08-26 15:46:52

0

我不知道特別是關於.net,但xml規範並不清楚「空白節點」(文本節點除了空白之外什麼都沒有),因此實現方式不同,大多數庫確實有一個啓動/停止方法(與缺省相反)處理空白節點。

空白節點沒有明確定義的行爲的原因是,你會無意中有很多他們使用乾淨的格式時:

<outerTag> 
    <innerTag /> 
</outerTag> 

實際上有兩個空白節點!