2012-03-22 10 views
1

外部のXmlをXmlReaderから読み取ると、出力の空白( "\ n \ t \ t")を削除するにはどうすればよいですか?XmlReaderから " r t t"エスケープ文字を削除する方法

using (XmlReader reader = XmlReader.Create(new FileStream(archivePath, FileMode.Open))) 
{ 
    while (reader.Read()) 
    { 
     if (reader.NodeType == XmlNodeType.Element) 
     { 
      if (reader.Depth == 1) 
      { 
       var xe = XNode.ReadFrom(reader) as XElement; 
       XElement.Parse(xe.ToString(), LoadOptions.None); 

       var reader2 = xe.CreateReader(); 
       reader2.MoveToContent(); 
       var content = reader2.ReadOuterXml(); 
      } 
     } 
    } 
} 
+0

うーん... [ '.Trim();'](http://msdn.microsoft.com/en-us/library/system.string .trim(v = vs.100).aspx)? – qJake

+1

トリミングよりも洗練されたソリューションがあるはずです。 XmlReaderSettingsクラスのIgnoreWhitespaceプロパティを確認してください。 –

答えて

1

XmlReaderSettingsを使用してみてください:

var readerSettings = new XmlReaderSettings 
{ 
    IgnoreWhitespace = true, 
}; 

using (XmlReader reader = XmlReader.Create(new FileStream(archivePath, FileMode.Open), readerSettings)) 
{ 
    //... 
} 
0

string.Replace(@ "\ n \ t \ t"、 "");

+2

あなたが逐語的な文字列を使用しているので、OPが削除したい空白を置き換えません... – ken2k

0

この機能を試してください:

編集:機能ではありません。私は何が頭の中を通っているのか分かりません。

reader.WhitespaceHandling = WhitespaceHandling.None; 
関連する問題