string xPath= @"/ActiveTestReq/MsgType";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
XmlNode xmlNode = xmlDoc.SelectSingleNode(xPath);
XmlElement xmlEle =(XmlElement)xmlNode;
string msgType = xmlEle.InnerText; 
只要程序一执行string msgType = xmlEle.InnerText; 就保此错误;其中xmlString= "<BillingReq xmlns=\"http://www.monternet.com/dsmp/schemas/>
                       <Version>1.5.0</Version>
                       <MsgType>BillingReq</MsgType>
     <TransactionID>1111111</TransactionID>
     <hRet>0</hRet>
   <UserIdType>13011112222</UserIdType>
       </BillingRq>"
请高手帮忙啊!

解决方案 »

  1.   

    重发一边上面的有点错误!string xPath= @"/ActiveTestReq/MsgType";
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.LoadXml(xmlString);
    XmlNode xmlNode = xmlDoc.SelectSingleNode(xPath);
    XmlElement xmlEle =(XmlElement)xmlNode;
    string msgType = xmlEle.InnerText; 
    只要程序一执行string msgType = xmlEle.InnerText; 就保此错误;其中xmlString= "<ActiveTestReq xmlns=\"http://www.monternet.com/dsmp/schemas/\">
                           <Version>1.5.0</Version>
                           <MsgType>BillingReq</MsgType>
         <TransactionID>1111111</TransactionID>
         <hRet>0</hRet>
       <UserIdType>13011112222</UserIdType>
           </ActiveTestReq>"
    请高手帮忙啊!
      

  2.   

    XmlNode xmlNode = xmlDoc.SelectSingleNode(xPath);
    可能是这句话有问题。你查一下SelectSingleNode的用法。xmlNode可能是未定义。所以string msgType = xmlEle.InnerText; 会报"未将对象引用设置到对象的实例“
      

  3.   

    当然报错了,你要读的是2个属性的值,怎么可以用1个字符串直接等于那,试试XmlNodeList好像是这个,找一下,我也做过你这个例子,不过好久了,有点忘了,大概思想就是这样,最后在用个foreach循环xmlNodeList里的XmlNode最后得到你要的值
      

  4.   

    楼上的我有点看不太明白什么意思。
    但是我定位到是”xmlns=\"http://www.monternet.com/dsmp/schemas“,导致的,如果没有这个字符串则没有问题,如果有这个字符串则xmlNode就会为null?
    不知为什么,请指点!
      

  5.   

    System.Xml.XmlDocument xmlDoc = new XmlDocument();
    string xmlString = @"<ActiveTestReq xmlns='http://www.monternet.com/dsmp/schemas/'>
                     <Version>1.5.0</Version>
                     <MsgType>BillingReq</MsgType>
    <TransactionID>1111111</TransactionID>
    <hRet>0</hRet>
    <UserIdType>13011112222</UserIdType>
     </ActiveTestReq>";xmlDoc.LoadXml(xmlString);
    XmlNamespaceManager xnm = new XmlNamespaceManager(xmlDoc.NameTable);
    xnm.AddNamespace("mxh", "http://www.monternet.com/dsmp/schemas/");
    string xPath = @"/mxh:ActiveTestReq/mxh:MsgType";
    MessageBox.Show(xmlDoc.InnerText);
    XmlNode xmlNode = xmlDoc.SelectSingleNode(xPath, xnm);
    if (xmlNode != null)
    {
      MessageBox.Show(xmlNode.InnerText);
    }
      

  6.   

    xmlns表示名称空间,你的Xpath也必须加上