2013-09-24 88 views
0

我有一個巨大的xml文檔。當我用xpath = // requestHeader測試返回結果如下: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,您尚未指定該API。 –

回答

0

把你的名字空間頂部的XML文件是這樣的:

<?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> 

現在你可以像使用xpath一樣使用

//requestHeader/req:clientUsername 
相關問題