如何使用c#从xml文件中删除#文本

本文关键字:删除 文本 文件 xml 何使用 | 更新日期: 2023-09-27 18:11:55

我正在尝试读取xml文件,而阅读我得到#text作为值。我已经删除了所有的空白,然后这个#text继续出现。解决方案是什么?

这是我的原始xml文件

<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
  <title>The Handmaid's Tale</title>
  <price>14.95</price>
</book>

这是我的新xml文件后删除空白

<!--sample XML fragment--><book genre='novel' ISBN='1-861003-78' misc='sale-item'><title>The Handmaid's Tale</title><price>14.95</price></book>

我正在尝试验证两个xml文件,这是代码

 static bool structValidate( XmlNodeList xmlOldNode, XmlNodeList xmlNewNode)
    {
        if (xmlOldNode.Count != xmlNewNode.Count) return true;
        for (var i = 0; i < xmlOldNode.Count; i++)
        {
            var nodeA = xmlOldNode[i];
            var nodeB = xmlNewNode[i];
            Console.WriteLine("'n" + nodeA.Name + ":");
            Console.WriteLine("'n" + nodeB.Name + ":");
            Console.ReadLine();
                if (nodeA.Attributes == null  )
                {
                    if (nodeB.Attributes != null)
                        return true;
                    else
                        continue;
                }

            if (nodeA.Attributes.Count != nodeB.Attributes.Count
            || nodeA.Name != nodeB.Name) return true;

            for (var j = 0; j < nodeA.Attributes.Count; j++)
            {
                var attrA = nodeA.Attributes[j];
                var attrB = nodeB.Attributes[j];
                Console.WriteLine(attrA.Name);
                Console.WriteLine(attrB.Name);
                Console.ReadLine();
                if (attrA.Name != attrB.Name) return true;
            }
            if (nodeA.HasChildNodes && nodeB.HasChildNodes)
            {
                return structValidate(nodeA.ChildNodes, nodeB.ChildNodes);
            }               
            else 
            {
                return false;
            }
        }
       return false;
    }
所以在打印的时候我得到了#text

如何使用c#从xml文件中删除#文本

#text节点是旧XML文件的解析器返回的空白- <title><price>节点之前的缩进。

错误妨碍了您加载旧XML文件。它将空格解析为XML节点。

您的XML解析方式会将这两个XML文件视为相同的文件:

<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
  <title>The Handmaid's Tale</title>
  <price>14.95</price>
</book>
<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
someUnformatedText<title>The Handmaid's Tale</title>
someUnformatedText<price>14.95</price>
</book>

这是XmlNode的文档。名称

节点的限定名。返回的名称依赖于节点的NodeType:

Text -> # Text