我有这样的xml文件从不MINDE的信箱。我感兴趣的是内外因素......如果有一个元素在subchild的,我不想在计算taht。xpath选择在xml文件的随机区域中重复的元素的内部文本
<document>
<tests>
<group>
<number>
<random>
....
....
<pins>
<pin>
<number>1</number>
</pin>
<pin>
<number>2</number>
<result>
<number>NOT INTERESTED</number>
</result>
</pin>
</pins>
</random>
</number>
</group>
我又写道下面的方法来获得我感兴趣(在这种情况下,1和2)
public int GetNumberOfAllPins()
{
string xpath = "count(/Document//Pins/Pin/Number)";
int num = Convert.ToInt32(nav.Evaluate(xpath));
return num;
}
public string[] GetNameOfAllPins()
{
string[] temp = new string[GetNumberOfAllPins()];
XPathNodeIterator it = nav.Select("/Document//Pins/Pin/Number");
int i = 0;
while (it.MoveNext())
{
temp[i] = it.Current.Value;
i++;
}
return temp;
}
但这些代码让我奇怪的结果有时是我感兴趣的更少或更多的元素。你介意givng一些提示引脚?
谢谢。
请注意,您可以在'XPathNodeIterator'上使用'foreach'。 – 2011-03-16 20:34:27
您的XML具有较小的标签(“pin”,“number”),但您的XPath具有骆驼包装(“Pin”,“Number”)。这是一个错字吗?如果不是,那就是您的答案 - XML和XPath区分大小写。 – 2011-03-16 20:35:51
@Pavel对不起,这是一个错字...请不要介意XML文件的情况我提供的仅供参考 – 2011-03-16 20:40:10