C# 如何忽略XML中的空白和新行
我有一个XML文件,我将在其中循环遍历节点并获取属性值 但是除了属性值之外,我还在输出中得到一些符号(矩形框)。如果我尝试删除空间 那就好了 在下面的XML中,我得到了标题的内部文本C# 如何忽略XML中的空白和新行,c#,xml,xml-parsing,C#,Xml,Xml Parsing,我有一个XML文件,我将在其中循环遍历节点并获取属性值 但是除了属性值之外,我还在输出中得到一些符号(矩形框)。如果我尝试删除空间 那就好了 在下面的XML中,我得到了标题的内部文本 <catalog> <book id="bk101"> <details> <title>XML Developer's Guide</title> </details> </book> </
<catalog>
<book id="bk101">
<details>
<title>XML Developer's Guide</title>
</details>
</book>
</catalog>
请建议如何忽略输出中的空白和新行 您可以基于
PreserveWhitespace
属性尝试使用此代码
XmlDocument doc = new XmlDocument();
....
....
doc.PreserveWhitespace = false;
链接:您是否仅限于使用.Net 2.0?如果是这样,请忽略以下内容 如果您可以使用.NET3.5,那么以下LINQtoXML将适用于您
请显示您当前使用的代码,并说明您使用的语言和平台(Java、J2EE?)您可以使用
string.Trim()
和string.remove(“”)
以及string.remove('\r')
和string.remove('\n')
或string.remove(“\r\n”)
请不要解析您自己的XML。这是一项相当艰巨的任务,XML库的作者多次成功地解决了这一问题。这里有免费的工具,只要使用它就可以了。这里是很好的示例imho:
foreach (XmlNode catalogid in Xmlcontent.GetElementsByTagName("catalog"))
{
foreach (XmlNode bookid in catalogid)
{
foreach (XmlNode titleid in bookid)
{
string booktitle = titleid.InnerText.ToString();
}
}
}
XmlDocument doc = new XmlDocument();
....
....
doc.PreserveWhitespace = false;
XElement root = XElement.Load(file);
var catalogs = root.Descendants("catalog");
var books = catalogs.SelectMany(c =>
c.Descendants("book").Select(book => new
{
Id = book.Attribute("id").Value,
Title = book.Descendants("title").First().Value
}))
//.OrderBy(b => b.Title) // sort by title or id if you'd like.
.ToArray();