我正在使用System.Xml来解析我生成的xml文件。节点的一些内部文本包含回车符,如下所示:“\ r \ n [...] \ r \ n”。 Thant是因为我在解析它之前使用Visual Studio格式化它。
有没有办法删除格式化工具添加的回车?
谢谢!
编辑 @Jon:非常感谢!我使用类似的方法来规避问题。
char[] escape = { ' ', '\r', '\n' };
string text = node.InnerText.Trim(escape);
这可以避免在文本中过滤出回车。
正如您所提到的,我真正的问题是如何在解析xml时过滤掉格式化。我的假设是:节点中只有纯文本,没有嵌入子元素。
除了回车符之外还有其他格式吗?
答案 0 :(得分:1)
删除所有换行很容易:
node.InnerText = node.InnerText.Replace("\r", "")
.Replace("\n", "");
但是你的问题要求专门删除格式化工具添加的换行符 - 你无法真正检测出哪些是手动添加的,哪些是自动的,如果它们都只是在文件中。
此外,您是否有散布文本和元素的节点,例如:
<node>
text
<element />
text
</node>
如果这样做,您确实需要单独处理每个文本节点,而不是仅仅更改InnerText
。
如果这对您没有帮助,您能否提供有关该问题的更多信息?