我有一个XML文件说

  <items>
      <item1>
        <piece>1300</piece>
        <itemc>665583</itemc>
      </item1>
      <item2>
        <piece>100</piece>
        <itemc>665584</itemc>
      </item2>
    </items>

我正在尝试编写一个c应用程序,以获得所有到最内部节点的x路径,例如:
items/item1/piece
items/item1/itemc
items/item2/piece
items/item2/itemc

有没有办法用C或VB来做?提前感谢您提供可能的解决方案。

最佳答案

给你:

static void Main()
{
   XmlDocument doc = new XmlDocument();
   doc.Load(@"C:\Test.xml");

   foreach (XmlNode node in doc.DocumentElement.ChildNodes)
   {
        ProcesNode(node, doc.DocumentElement.Name);
   }
}


    private void ProcesNode(XmlNode node, string parentPath)
    {
        if (!node.HasChildNodes
            || ((node.ChildNodes.Count == 1) && (node.FirstChild is System.Xml.XmlText)))
        {
            System.Diagnostics.Debug.WriteLine(parentPath + "/" + node.Name);
        }
        else
        {
            foreach (XmlNode child in node.ChildNodes)
            {
                ProcesNode(child, parentPath + "/" + node.Name);
            }
        }
    }

以上代码将为任何类型的文件生成所需的输出。如有需要,请加支票。
主要部分是忽略输出中的文本节点(节点内的文本)。

08-04 02:06