<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