2012-03-22 90 views
1

XmlReader中讀取外部Xml,如何刪除輸出中的空格(「\ 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 2012-03-22 14:29:22

+1

似乎應該是比修剪更優雅的解決方案。查看XmlReaderSettings類,IgnoreWhitespace屬性。 – 2012-03-22 14:30:29

回答

1

使用try 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 2012-03-22 14:35:28

0

嘗試此功能:

編輯:不是功能;我不知道我的腦袋裏發生了什麼。

reader.WhitespaceHandling = WhitespaceHandling.None;