我有一个XML文件如下,
  <?xml version="1.0" encoding="gbk" ?> 
- <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
- <soapenv:Body>
- <ns3:MtSOAPRespBody xmlns:ns3="http://sms.zjol.com.cn/esms/">
- <ns3:message>
  <id /> 
  <result>0</result> 
  </ns3:message>
  </ns3:MtSOAPRespBody>
  </soapenv:Body>
  </soapenv:Envelope>请问怎么读取其中的result值????

解决方案 »

  1.   

    XmlDocument doc = new XmlDocument();
    doc.Load(@"c:\1.xml");
    XmlNode node = doc.DocumentElement.GetElementByTagName("result")[0];
    string s = node.InnerText;
    Console.WriteLine(s);
     
      

  2.   

    注意要使用XmlNamespaceManager 
      

  3.   

     XmlDocument xmldoc = new XmlDocument();        xmldoc.Load(@"G:\项目\钱江晚报\SP短信\测试包\20090513142335.xml");
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmldoc.NameTable);
            nsmgr.AddNamespace("sms", "http://sms.zjol.com.cn/esms/");        XmlNodeList nodeList = xmldoc.SelectNodes("/sms:MtSOAPRespBody/sms:message", nsmgr);        foreach (XmlElement node in nodeList)
            {
              //得到该节点的子节点
              XmlElement els = node as XmlElement;
              if (els.Name.ToLower() == "result")
              {
                  txtId.Text = els.Attributes["result"].InnerText;
              }
              else if (els.Name.ToLower() == "result")
              {
                  TxtRe.Text = els.Attributes["result"].InnerText;
              }
           }
    我是这样去读取的,但是nodeList中取不到值?  请问是什么原因?