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 に答える