2012-12-05 3 views
1

클래식 ASP는 제 첫 번째 언어가 아니며 버그 수정이 필요합니다. 나는 문제를 강조했지만 조금 붙어있다.클래식 ASP의 노드 검색

나는 다음과 같은 SOAP 응답이, 루트 var에 좋은 데이터를로드하고 있습니다

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Body> 
<checkVatResponse xmlns="urn:ec.europa.eu:taxud:vies:services:checkVat:types">  
<countryCode>GB</countryCode> 
<vatNumber>xxxxxxx</vatNumber> 
<requestDate>2012-12-05+01:00</requestDate> 
<valid>true</valid> 
<name>XYZ LIMITED</name> 
<address>Jon Street 
London</address> 
</checkVatResponse> 
</soap:Body> 
</soap:Envelope> 

가 지금은 '유효 노드를 추출해야합니다. 나는

Set Root = oXmlDom.documentElement 

response.write(Root.SelectSingleNode("SOAP:Envelope/SOAP:Body/checkVatResponse/valid").text) 
response.write(Root.SelectSingleNode("SOAP:Envelope/SOAP:Body/urn:checkVatResponse/valid").text)  
response.write(Root.SelectSingleNode("//urn:valid").text) 

나에게 분명 문제하시기 바랍니다보기 다음하지만 아무 소용에 노력했다!

+0

향후 방문객을위한 해결 방법은 다음을 참조하십시오. http://stackoverflow.com/questions/10351460/get-a-only-string-from-soap-response-in-classic-asp –

+1

oXmlDom.selectSingleNode "//soap:Envelope/soap:Body/checkVatResponse/valid").text 대소 문자를 구분합니다. – SearchAndResQ

답변

0

여기 두 가지가 있습니다. 첫째, XML은 대소 문자를 구분하므로 SOAP:Body이 아닌 soap:Body과 같은 Select 문을 사용해야합니다.

두 번째로, documentElement 기능이 경우 soap:Envelope 인 XML의 첫 번째 요소를 반환합니다, 그래서 당신은 당신이 만든 Root 개체에서 SelectSingleNode를 사용하고 있기 때문에, 다음이 다음과 같은 사항에 대해보고 파서을 말하고있다 : 그래서

<soap:Envelope> 
    <soap:Envelope> 
    <soap:Body> 

다음과 같이 SelectSingleNode 문의 첫 번째 분기를 남겨 두십시오. response.write(Root.SelectSingleNode("soap:Body/checkVatResponse/valid").text)

희망이 있습니다.