zoukankan      html  css  js  c++  java
  • 获取XML中指定属性的值

    <?xml version='1.0' encoding='UTF-8'?>
    <Response service="OrderService">
        <Head>OK</Head>
        <Body>
            <OrderResponse filter_result="2" destcode="010" mailno="11111" origincode="021" orderid="778"/>

    <OrderResponse filter_result="2" destcode="010" mailno="11111" origincode="021" orderid="778" return_tracking_no="12121"/>
    </Body> </Response>

    从厂商那里返回的这样的接口,但是正确的是上面标红的Code.

    所以我就是要先去判断下代码中是否有return_tracking_no这个属性。

    刚开始我是这样写的:

    string ret= xNodedetail.Attributes["return_tracking_no"].Value;

    但是这样如果没有这个属性,就会直接报错:未将对象实例化之类的错误。

    现在更改一种方式:

     var xdoc = new XmlDocument();
         xdoc.LoadXml(xml);
      XmlNode xNodedetail = xdoc.SelectSingleNode("Response/Body/OrderResponse");//取is_success节点的值
      string mailno = xNodedetail.Attributes["mailno"].Value;//
      XmlElement XmlEle = (XmlElement)xNodedetail;//将XmlNode转成XMLElement
      string sssss = XmlEle.GetAttribute("return_tracking_no").Trim();//如果没有这个属性,值是空
     if (string.IsNullOrEmpty(XmlEle.GetAttribute("return_tracking_no").Trim()))
       {
         throw new Exception("" + TRIP_NUMBER + ",没有返回对应的签回单号,请联系顺丰管理员");
       }
  • 相关阅读:
    实例化讲解RunLoop---IOS
    IOS中的SpringBoard
    Mac版OBS设置详解
    Swift学习Tip之Closures
    Swift中Array的Map
    IOS中的国际化(一)
    IOS,中获取系统内存占有率的方法
    IOS获取两个日期之间的时间间隔
    IOS中微信支、支付宝支付详解
    IOS中的正则表达式:NSRegularExpression
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/13389733.html
Copyright © 2011-2022 走看看