<Root>
<person name="Tom">
<Car name="car1" />
<Car name="car2" />
</Person>
<Person name="Sally">
<Car name="car3" />
<Car name="car4" />
</person>
</Root>
我正在使用SelectNodes()方法进行遍历。但是我无法将2级降低到获得所有车辆的名称。
var people = Xmldoc.SelectNodes("/Root/Person");
foreach (XmlNode person in people )
{
var cars = person.SelectNodes("/Car");
foreach(XmlNode car in cars)
{
//get the name of the car
}
}
声明person.SelectNodes("/Car")
不会返回任何结果。
答案 0 :(得分:2)
选择Car
时从xpath中删除/答案 1 :(得分:1)
试试这个
var people = Xmldoc.SelectNodes("/Root/Person");
foreach (XmlNode person in people )
{ var cars = person.ChildNodes;
foreach(XmlNode car in cars)
{ //get the name of the car }
}
答案 2 :(得分:0)
你错过了第二个xpath中的.
(点),
即将您的行更改为:
person.SelectNodes("./Car");
dot 表示您要查询当前节点(即人员节点)。没有它,你就是在查询整个文件。