我正在解析具有以下条目的Xml数据:
<item name="UserText" type_name="gh_string" type_code="10"> </item>
我应该将6个空格作为String读取,但System.Xml.XmlNode的InnerText和InnerXml值都是零长度字符串。
我有没有办法在现有文件中获取这些空白数据,以后我需要做些什么来防止这种搞砸?
答案 0 :(得分: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标签中,尚未测试。
答案 1 :(得分:3)
如果您正在使用XMLReader读取xml,请使用将IgnoreWhitespace设置为false的XMLReaderSettings
XmlReader r = XmlReader.Create("file",new XmlReaderSettings{ IgnoreWhitespace=false;})
答案 2 :(得分:3)
如果您使用XMLDocument
,请在致电XMLDocument.PreserveWhitespace = true
之前设置Load
。
请参阅http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.preservewhitespace.aspx
这对我很有用。