2013-09-24 2 views
0

거대한 XML 문서가 있습니다. 내가 = //에 RequestHeader는 결과를 반환 XPath는 함께 테스트 할 때 다음과 같습니다 :xpath는 네임 스페이스가있는 노드를 가져올 수 없습니다.

<requestHeader> 
     <!--Optional:--> 
     <req:clientCode xmlns:req="http://www.ibb.com/ws/requestHeader">?</req:clientCode> 
     <!--Optional:--> 
     <req:clientUsername xmlns:req="http://www.ibb.com/ws/requestHeader">CC</req:clientUsername> 
     <!--Optional:--> 
     <req:channel xmlns:req="http://www.ibb.com/ws/requestHeader">?</req:channel> 
     <!--Optional:--> 
    </requestHeader> 

그리고 더, 나는 clientUsername 값을 얻을 필요가있다. 불행히도 // requestHeader // req : clientUsername은 빈 문자열을 반환합니다. 그게 뭐가 잘못 됐니?

와 함께 당신은 테스트 할 수 있습니다 http://www.xpathtester.com/test

+0

파서에서 'req'에 대한 네임 스페이스 컨텍스트를 지정 했습니까? –

+0

아니요, 어떻게 지정할 수 있습니까? – user2812233

+0

지정하지 않은 사용중인 XPath 엔진에 따라 API에 따라 다릅니다. –

답변

1

namespaceContextreq를 지정하십시오 :

<?xml version="1.0" encoding="UTF-8"?> 
<requestHeader xmlns:req="http://www.ibb.com/ws/requestHeader"> 
    <!--Optional:--> 
    <req:clientCode>?</req:clientCode> 
    <!--Optional:--> 
    <req:clientUsername>CC</req:clientUsername> 
    <!--Optional:--> 
    <req:channel>?</req:channel> 
    <!--Optional:--> 
</requestHeader> 

:

0

XPath.setNamespaceContext가 상단에이 같은 XML 파일을 네임 스페이스를 넣어 이제 xpath를 사용할 수 있습니다.

//requestHeader/req:clientUsername 
관련 문제