XmlNode Innertext中的回车符

时间:2009-08-14 05:48:33

标签: xml

我正在使用System.Xml来解析我生成的xml文件。节点的一些内部文本包含回车符,如下所示:“\ r \ n [...] \ r \ n”。 Thant是因为我在解析它之前使用Visual Studio格式化它。

有没有办法删除格式化工具添加的回车?

谢谢!

编辑 @Jon:非常感谢!我使用类似的方法来规避问题。

            char[] escape = { ' ', '\r', '\n' };
            string text = node.InnerText.Trim(escape);

这可以避免在文本中过滤出回车。

正如您所提到的,我真正的问题是如何在解析xml时过滤掉格式化。我的假设是:节点中只有纯文本,没有嵌入子元素。

除了回车符之外还有其他格式吗?

1 个答案:

答案 0 :(得分:1)

删除所有换行很容易:

node.InnerText = node.InnerText.Replace("\r", "")
                               .Replace("\n", "");

但是你的问题要求专门删除格式化工具添加的换行符 - 你无法真正检测出哪些是手动添加的,哪些是自动的,如果它们都只是在文件中。

此外,您是否有散布文本和元素的节点,例如:

<node>
   text
   <element />
   text
</node>

如果这样做,您确实需要单独处理每个文本节点,而不是仅仅更改InnerText

如果这对您没有帮助,您能否提供有关该问题的更多信息?