Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何忽略XML中的空白和新行_C#_Xml_Xml Parsing - Fatal编程技术网

C# 如何忽略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> </

我有一个XML文件,我将在其中循环遍历节点并获取属性值

但是除了属性值之外,我还在输出中得到一些符号(矩形框)。如果我尝试删除空间 那就好了

在下面的XML中,我得到了标题的内部文本

 <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将适用于您

  • 首先加载文件
  • 像以前一样获取所有目录元素
  • 然后选择目录中的所有书籍
  • 获取图书id和标题
  • 将所有目录中的所有书籍作为数组分配到一个变量books中

  • 请显示您当前使用的代码,并说明您使用的语言和平台(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();