带有空格的Xml作为InnerText

时间:2010-05-06 19:03:04

标签: c# xml whitespace

我正在解析具有以下条目的Xml数据:

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

我应该将6个空格作为String读取,但System.Xml.XmlNode的InnerText和InnerXml值都是零长度字符串。

我有没有办法在现有文件中获取这些空白数据,以后我需要做些什么来防止这种搞砸?

3 个答案:

答案 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

这对我很有用。