2012-03-22 99 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;