我有以下结构的XML文件:deftable我可以有多个表,在标签内无法读取XML文件用C#
<deftable>
<table>
<job jobname="">
<incond name="" />
<outcond name="" />
</job>
<job jobname="">
<incond name="" />
<outcond name="" />
<incond name="" />
<outcond name="" />
</job>
</table>
<table>
<job jobname="">
<incond name="" />
<outcond name="" />
</job>
<job jobname="">
<incond name="" />
<outcond name="" />
<incond name="" />
<outcond name="" />
</job>
</table>
</deftable>
。 在表标记我可以有多个作业,并在那些我有多个incind和第二。
我正在尝试获取jobname的值,以及incond和outcond的name属性的值。
我已经尝试了几条路径来完成这个。我试过的最新事情是这样的,但我似乎无法让它工作。
XmlDocument doc = new XmlDocument();
doc.Load(file);
XmlNodeList nodes = doc.DocumentElement.SelectNodes("/deftable/table");
int i = 1;
foreach (XmlNode node in nodes)
{
Console.WriteLine(node["job"].GetAttribute("jobname") + " -- " + i);
i++;
XmlNodeList nodes2 = doc.DocumentElement.SelectNodes("/deftable/table/job");
foreach (XmlNode item in nodes2)
{
Console.WriteLine(item["incond"].GetAttribute("name"));
}
}
任何帮助,非常感谢。
你用调试器通过它吗?输出是什么?预期产出是多少?你有什么线索,哪些部分的代码不工作? –
这里是一个在线xpath测试器,你给它一个文档和一个xpath:http://www.freeformatter.com/xpath-tester.html从这个我推断出你需要两个正斜杠,如'// deftable/table' – GreatAndPowerfulOz
[检查此线程](http://stackoverflow.com/questions/642293/how-do-i-read-and-parse-an-xml-file-in-c)如何去做这件事。看起来你并没有在挖掘循环中的子节点。 –