2009-08-14 77 views
1

我使用System.Xml來解析我生成的xml文件。某些節點的內部文本包含回車,如下所示:「\ r \ n [...] \ r \ n」。 Thant是因爲我在解析它之前使用Visual Studio進行格式化。在XmlNode中回車Innertextxt

是否有任何方法刪除格式化工具添加的回車?

謝謝!

編輯 @Jon:真的非常感謝!我用類似的方法來規避這個問題。

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

這樣可以避免濾除文本中的回車符。

正如你所說,我真正的問題是如何在解析xml時過濾掉格式化。我的假設是:節點中只有純文本,沒有嵌入子元素。

除回車符之外,還有其他格式嗎?

回答

1

刪除所有換行符很簡單:

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

但你的問題問的格式化工具,增加了有關專門去除換行符 - 你真的不能檢測,哪些是手動添加和自動,如果他們都在文件中。

另外,你必須具有文本和元素節點,如:

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

如果你這樣做,你真的需要處理每個文本節點,而不是單獨的只是改變InnerText

如果這對您沒有幫助,您能否提供有關該問題的更多信息?