0

我有一个巨大的 xml 文档。当我用 xpath = //requestHeader 测试时,返回的结果如下:

  <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

4

2 回答 2

1

尝试req在中指定namespaceContext

XPath.setNamespaceContext

于 2013-09-24T19:02:38.267 回答
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
于 2013-09-24T19:23:24.980 回答