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 + ",没有返回对应的签回单号,请联系顺丰管理员");
       }
  • 相关阅读:
    CentOS
    Ubuntu
    Ubuntu
    Ubuntu
    2020-10-12 分享——Bigdata & ML Development WITH SCALA/python & SPARK (待续)
    postgresql 自增列 初始值设置
    白话布隆过滤器BloomFilter(转发)
    Typora ---一款简洁的Markdown编辑器
    postman —— API测试工具 && HTTP请求 (filddler 同类)
    K8S —— 学习资料(待看)
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/13389733.html
Copyright © 2011-2022 走看看