我有一个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);
}
}
}
以上代码将为任何类型的文件生成所需的输出。如有需要,请加支票。
主要部分是忽略输出中的文本节点(节点内的文本)。