<OverallReport>
<Results>
<Data1>
<a>-30 </a>
<b>400</b>
</Data1>
<Data2>
<MoreData>
<c>2</c>
<d>100</d>
</MoreData>
<MoreData>
<c>4</c>
<d>200</d>
</MoreData>
</Data2>
</Results>
<Results>
<Data1>
<a>-50</a>
<b>600</b>
</Data1>
<Data2>
<MoreData>
<c>2</c>
<d>200</d>
</MoreData>
<MoreData>
<c>6</c>
<d>500</d>
</MoreData>
</Data2>
</Results>
<Results>
<Data1>
<a>-50</a>
<b>600</b>
</Data1>
<Data2>
<MoreData>
<c>2</c>
<d>300</d>
</MoreData>
<MoreData>
<c>6</c>
<d>900</d>
</MoreData>
</Data2>
</Results>
</OverallReport>
我有一個XML文檔,如上所述,它包含任意數量的結點節點和任意數量的MoreData節點。我必須找到包含兩個特定值(例如a = -50,b = 600)的結果節點,如果'c'等於特定值,則在該節點內找到'd'的值。同時,也有可能具有相同的A,B和C的各種結果的節點,我需要找到的「X」之一。所以,如果(a = -50,b = 600,c = 6,x = 0),我正在尋找的d的值是500。若(a = -50,B = 600,C = 6,X = 1),d的我正在尋找的值是900根據節點在xml文檔中的位置查找元素的值
我有一個相關的問題貼出來,與合作的答案,但是這是更高級一點,所以我決定創建一個新的問題。我目前發現d的方式:
string wantedA = "-50";
string wantedB = "600";
string wantedC = "6";
string x=1;
string xpath = string.Format("OverallReport/Results[Data1/a={0} and Data1/b={1}]/Data2/MoreData[c={2}]/d",
wantedA, wantedB, wantedC);
XmlNode nodeD = document.SelectSingleNode(xpath);
Console.WriteLine(nodeD.InnerText);
同樣,我是Xml的新手,任何幫助或提示都將不勝感激!
太謝謝你了! – Faye