Java xpath无法获取具有命名空间的节点
我有一个巨大的xml文档。当我使用xpath=//requestHeader进行测试时,返回的结果如下:Java xpath无法获取具有命名空间的节点,java,xml,xpath,Java,Xml,Xpath,我有一个巨大的xml文档。当我使用xpath=//requestHeader进行测试时,返回的结果如下: <requestHeader> <!--Optional:--> <req:clientCode xmlns:req="http://www.ibb.com/ws/requestHeader">?</req:clientCode> <!--Optional:--> &
<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返回空字符串。怎么了
您可以使用以下工具进行测试:
尝试在
名称空间上下文中指定req
:
将您的命名空间放在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>
您是否在解析器中指定了req
的命名空间上下文?否,如何指定?取决于您使用的XPath引擎的API,您尚未指定。
//requestHeader/req:clientUsername