我解析其中有條目類似的XML數據:的Xml用空格作爲的innerText
<item name="UserText" type_name="gh_string" type_code="10"> </item>
我應該讀6位爲字符串,但兩個系統將InnerText和InnerXml值.Xml.XmlNode是零長度字符串。
有沒有什麼辦法可以在現有文件中獲取這些空白數據,以及未來我需要做些什麼來防止這種干擾?
我解析其中有條目類似的XML數據:的Xml用空格作爲的innerText
<item name="UserText" type_name="gh_string" type_code="10"> </item>
我應該讀6位爲字符串,但兩個系統將InnerText和InnerXml值.Xml.XmlNode是零長度字符串。
有沒有什麼辦法可以在現有文件中獲取這些空白數據,以及未來我需要做些什麼來防止這種干擾?
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標籤中,尚未經過測試。
如果您在XML與一個XMLReader閱讀只是用XMLReaderSettings與IgnoreWhitespace設置爲false
XmlReader r = XmlReader.Create("file",new XmlReaderSettings{ IgnoreWhitespace=false;})
如果使用XMLDocument
,呼籲Load
之前設置XMLDocument.PreserveWhitespace = true
。
見http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.preservewhitespace.aspx
這個罰款對我的作品。
不,我使用System.Xml.XmlDocument.LoadXml() – 2010-05-06 19:26:41