<items>
    <category catid="zb">
        <list desc="A">
            <item itemid="" price="100" name="1" hex=""></item>
            <item itemid="" price="100" name="2" hex=""></item>
            <item itemid="" price="100" name="3" hex=""></item>
            <item itemid="" price="100" name="4" hex=""></item>
            <item itemid="" price="100" name="5" hex=""></item>
        </list>
        <list desc="B">
            <item itemid="" price="100" name="6" hex=""></item>
            <item itemid="" price="100" name="7" hex=""></item>
            <item itemid="" price="100" name="8" hex=""></item>
            <item itemid="" price="100" name="9" hex=""></item>
            <item itemid="" price="100" name="10" hex=""></item>
        </list>
    </category>
</items>我用foreach (XmlNode opts in xmlDoc.SelectSingleNode("items/category/list").ChildNodes) 遍历,
它只能得<list desc="A">下的<item>不能得到  <list desc="B"> 下的<item>请问我该怎么写能才让它可以遍历所有list下的item?

解决方案 »

  1.   

    SelectSingleNode()表示选择第一个匹配的节点,应用SelectNodes();
      

  2.   

    foreach (XmlNode listNode in xmlDoc.SelectNodes("items/category/list"))
    {
       foreach (XmlNode opts in listNode.ChildNodes)
       {
            ....
       }
    }以上代码没有经过验证,仅供参考。
      

  3.   


     string xml = @"<items>
                                <category catid='zb'>
                                    <list desc='A'>
                                        <item itemid='' price='100' name='1' hex=''></item>
                                        <item itemid='' price='100' name='2' hex=''></item>
                                        <item itemid='' price='100' name='3' hex=''></item>
                                        <item itemid='' price='100' name='4' hex=''></item>
                                        <item itemid='' price='100' name='5' hex=''></item>
                                    </list>
                                    <list desc='B'>
                                        <item itemid='' price='100' name='6' hex=''></item>
                                        <item itemid='' price='100' name='7' hex=''></item>
                                        <item itemid='' price='100' name='8' hex=''></item>
                                        <item itemid='' price='100' name='9' hex=''></item>
                                        <item itemid='' price='100' name='10' hex=''></item>
                                    </list>
                                </category>
                            </items>";
                XElement xmlPage = XElement.Parse(xml);
                foreach (var q in xmlPage.Descendants("category").Elements("list"))
                {
                  
                }
    //代码经过验证
      

  4.   

    谢谢各位,~如果是这样的话,它是把 item 全部取出来,不按category分类了!