2016-08-09 2 views
0

발송물을 계산하기 위해 UPS 웹 서비스를 호출 중이며 주소가 유효하지 않은 경우 서비스 호출이 SoapException을 반환합니다.SoapException.Detail.InnerXML의 자식 요소를 선택하십시오.

<err:Errors xmlns:err=\"http://www.ups.com/XMLSchema/XOLTWS/Error/v1.1\"> 
    <err:ErrorDetail> 
     <err:Severity>Hard</err:Severity> 
     <err:PrimaryErrorCode> 
      <err:Code>111286</err:Code> 
      <err:Description>CAa is not a valid state for the specified shipment.</err:Description> 
     </err:PrimaryErrorCode> 
    </err:ErrorDetail> 
</err:Errors> 

내가 <Description> 요소에서 텍스트를 추출 할 :

SoapException은 다음 XML과 Detail.InnerXMl 속성이 있습니다.

왜이 작동하지 않을 것입니다 :

try 
{ 
} 
catch (SoapException ex) 
{ 
    XmlNode node = ex.Detail.SelectSingleNode("//Description"); 
    //node is null 
} 

답변

0

가 LinqToXml 쉽게 XML을 구문 분석 :이 크기 0의 목록을 반환

var errors = XDocument.Parse(yourxmlstring) 
       .Descendants("errors") 
       .Select(e => new 
       { 
        code = (int)e.Element("code"), 
        desc = (string)e.Element("description") 
       }) 
       .ToList(); 
+0

,'ex.Detail.InnerXML' 사용하는 대신에 'yourxmlstring' –

+0

'yourxmlstring'은 완전한'SoapException' 응답 메시지를 포함해야합니다. –

관련 문제