Java 如何使用XPath解决以下问题';标签';价值观

Java 如何使用XPath解决以下问题';标签';价值观,java,xml,xpath,Java,Xml,Xpath,xml文件是: <xml-fragment xmlns:xyz="http://someurl"> <xyz:xyzcontent> <contentattribute> <key>tags</key> <value>tag1, tag2</value> </contentattribute> </xyz:xyzcontent>

xml文件是:

<xml-fragment xmlns:xyz="http://someurl">
   <xyz:xyzcontent>
     <contentattribute>
       <key>tags</key>
       <value>tag1, tag2</value>
     </contentattribute>
   </xyz:xyzcontent>
...

您的查询有几个问题

  • XML已损坏(根标记未关闭)——可能只是复制/粘贴错误
  • 您正处于XML树的中间,但实际上尝试从根节点查询。在开始时使用子轴或自轴
    /
  • 使用
    属性
    -轴查询哪个属性?没有
  • 您在哪里注册了名称空间?不管怎样,
    xyz
    是什么名称空间?我猜它实际上是
    vp
    ,但是您没有完全混淆(或者没有给出文档的所有相关部分)
  • 使用谓词和字符串比较在轴步骤处进行筛选
请尝试以下操作:

XPathExpression createdDateExpression = xpath.compile("/contentattribute/key/attribute::tags/value");
  • 确保注册名称空间,查看该名称空间的引用(或提供更多信息)
  • 使用XPath查询
    //contentattribute[key='tags']/value