1. 程式人生 > 實用技巧 >獲取XML中指定屬性的值

獲取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 + ",沒有返回對應的籤回單號,請聯絡順豐管理員"); }