2009-08-14 14 views
1

私はSystem.Xmlを使用して、生成したxmlファイルを解析しています。ノードの内部テキストには、「\ r \ n [...] \ r \ n」のようなキャリッジリターンが含まれています。私はそれを解析する前にVisual Studioを使ってフォーマットしていたからです。XmlNode Innertextのキャリッジリターン

ツールをフォーマットすることで追加されたキャリッジリターンを削除する方法はありますか?

ありがとうございます!

編集 @Jon:本当にありがとうございます!私は問題を回避するために同様の方法を使用します。

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

これにより、テキストのキャリッジリターンを除外しないようにします。

あなたが言及したように、私の本当の疑問は、XMLを解析中にformatingsをフィルタリングする方法です。私の前提は次のとおりです。ノードにプレーンテキストだけがあり、子要素は埋め込まれていません。

キャリッジリターン以外のフォーマットはありますか?

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

しかし、あなたの質問には、ツールをフォーマットすることにより、追加について、具体的取り除く改行を要求 - あなたが本当にあれば、自動的ものが手動で追加されているかを検出し、そのことはできません。

答えて

1

すべて改行を削除することは簡単ですそれらはすべてファイル内にあります。そうした場合

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

は、あなたが本当に各テキストノードを処理し、個別にだけではなくInnerTextを変更する必要があります。また

は、次のようなテキストや要素が点在しているノードを、持っています。

これは役立たない場合は、問題の詳細を教えてください。