xml文件中:<appSettings>
  <key>
    <keyName>
      XSKConn
    </keyName>
    <keyValue>
      Data Source=192.168.100.155;database=xsk_db;User ID=xsk;Password=xsk"
    </keyValue>
  </key>
  <key>
    <keyName>
      DNS
    </keyName>
    <keyValue>
      192.168.100.155
    </keyValue>
  </key>
  <key>
    <keyName>
      reAspx
    </keyName>
    <keyValue>
      http://192.168.100.155/guanli.aspx
    </keyValue>
  </key>  
</appSettings>
.net中:string strPath = HttpContext.Current.Server.MapPath("~/")+ "XSKconfig.xml";
doc.Load(strPath);
XmlNode node = doc.SelectSingleNode("appSettings/key[keyName='XSKConn']");当代码运行完SelectSingleNode一句后,node的值为null,即没有找到子节点keyName为XSKConn的key节点。请问下,我是哪里错了?

解决方案 »

  1.   

    XmlNode node = doc.SelectSingleNode("appSettings/key[keyName='XSKConn']");
    这种取结点的方式错了。如果用[keyName='XSKConn']这个中括号的形式,代表这个keyName是key的一属性(如:<key keyName="abc" />)。可你xml中并不是这样的。你应该先找到keyname这个结
    即System.Xml.XmlNodeList list = xdoc.GetElementsByTagName("keyName");
    然后遍历判断。找到你所想要的。
      

  2.   

    XmlNode node = doc.SelectSingleNode("/appSettings/key[keyName='XSKConn']");貌似你在appSettings  少了前面的路径
      

  3.   

    <?xml version="1.0" encoding="utf-8"?>
    <KeyWords>
    <KeyWord ID="0" KeyWords="低層" SearchCount="2"/>
    <KeyWord ID="1" KeyWords="中層" />
    <KeyWord ID="2" KeyWords="高層" SearchCount="2" />
    </KeyWords> doc.Load(HttpContext.Current.Server.MapPath("~/xml/KeyWord.xml"));//导入XML文档
            XmlNode rootNode = doc.SelectSingleNode("/KeyWordss"); //获取xml根节点        string XPath = "/KeyWordss/KeyWord[@KeyWords]";
     XmlNodeList nodeList = doc.SelectNodes(XPath);//获取根节点下子节点KeyWord的属性KeyWords值
      

  4.   

    参考来源:http://blog.csdn.net/jack15850798154/archive/2010/03/03/5342771.aspx