2010-05-06 71 views
3

我解析其中有條目類似的XML數據:的Xml用空格作爲的innerText

<item name="UserText" type_name="gh_string" type_code="10">  </item> 

我應該讀6位爲字符串,但兩個系統將InnerText和InnerXml值.Xml.XmlNode是零長度字符串。

有沒有什麼辦法可以在現有文件中獲取這些空白數據,以及未來我需要做些什麼來防止這種干擾?

回答

4

XML將忽略該空白。如果你需要保留它,你應該在你的元素中插入一個xml:space="preserve"屬性。像這樣的東西,我認爲這將會保留你的空白,無論XML消耗在哪裏。

<item xml:space="preserve" name="UserText" type_name="gh_string" type_code="10">  </item> 

另一個與LINQ to XML一起使用的選項是使用PreserveWhitespace加載選項。例如:

XElement element = XElement.Parse(xml, LoadOptions.PreserveWhitespace); 

您還應該能夠將空白包裝在CData標籤中,尚未經過測試。

3

如果您在XML與一個XMLReader閱讀只是用XMLReaderSettings與IgnoreWhitespace設置爲false

XmlReader r = XmlReader.Create("file",new XmlReaderSettings{ IgnoreWhitespace=false;}) 
+0

不,我使用System.Xml.XmlDocument.LoadXml() – 2010-05-06 19:26:41