我有以下結構的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)如何去做這件事。看起來你並沒有在挖掘循環中的子節點。 –