XML格式如下:
<ModelConfigSet>
<ModelCofig ModelID="1" ModelName="面试知识">
<IsOutLink>False</IsOutLink>
<Url/>
<IsCreateClass>True</IsCreateClass>
<html/>
<IsOpen>True</IsOpen>
</ModelCofig>
<ModelCofig ModelID="2" ModelName="公交查询">
<IsOutLink>True</IsOutLink>
<Url>http://www</Url>
<IsCreateClass>False</IsCreateClass>
<html/>
<IsOpen>True</IsOpen>
</ModelCofig>
<ModelCofig ModelID="3" ModelName="列车查询">
<IsOutLink>True</IsOutLink>
<Url>http://www</Url>
<IsCreateClass>False</IsCreateClass>
<html/>
<IsOpen>True</IsOpen>
</ModelCofig>
</ModelConfigSet>问题:如何获取ModelID="2"的子节点集合,期待各位老鸟指导一下。我采用的:docXml.DocumentElement.SelectNodes("//ModelConfigSet[ModelConfig/ModelID='3']");提示不对,我想找个正确的答案。请大家捧场。

解决方案 »

  1.   

    "//ModelConfigSet/ModelConfig[@ModelID='3']";
      

  2.   

                XmlDocument docXml=new XmlDocument();
                docXml.Load(@configXML);
                XmlNodeList xn = docXml.DocumentElement.SelectNodes("//ModelConfigSet/ModelConfig[@ModelID='"+ModelID+"']");
                XmlNodeList xx = xn.Item(0).ChildNodes;运行到最好一句时候,出现错误:未将对象引用设置到对象的实例。这是哪里错了?
      

  3.   

    XmlNodeList xn = docXml.DocumentElement.SelectNodes("//ModelConfigSet/ModelConfig[@ModelID='"+ModelID+"']");tryXmlNodeList xn = docXml.DocumentElement.SelectNodes("//ModelConfigSet/ModelConfig[@ModelID="+ModelID+"]");
    出现错误:未将对象引用设置到对象的实例。
    是因为 xn 的length为0,所以你 xn.Item(0)的时候是没有对象实例的XmlNodeList xx = xn.Item(0).ChildNodes;就变成了XmlNodeList xx = null.ChildNodes;所以报错
      

  4.   

    哈哈,小虫子经过5小时的辛勤努力,终于搞清了缘故。原来不是程序有错误,而是:在调用路径的时候,将元素名字写错了。源节点 ModelCofig  ,调用的时候 ModelConfig,统一改成 ModelConfig,立马正确了。