獲取XML中指定屬性的值
阿新 • • 發佈:2020-07-28
<?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 + ",沒有返回對應的籤回單號,請聯絡順豐管理員"); }