在Xmldocument中迭代

时间:2011-03-01 22:47:00

标签: c# xml xmldocument

<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")不会返回任何结果。

3 个答案:

答案 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 表示您要查询当前节点(即人员节点)。没有它,你就是在查询整个文件。