【问题标题】:Xpath queries based on given node基于给定节点的 Xpath 查询
【发布时间】:2017-05-22 13:54:08
【问题描述】:

我有一个这个xml:

<?xml version="1.0"?>
<catalog>
   <car>
      <id>0</id>
      <color>green</color>
      <color>red</color>
      <color>yellow</color>
      <vip>
        <user>Trump</user>
        <user>Obama</user>
        <user>Merkel</user>     
      </vip>
   </car>
   <car>
      <id>1</id>
      <color>green</color>
      <color>red</color>
      <color>yellow</color>
      <vip>
        <user>Putinski</user>
        <user>Orlovski</user>
        <user>Idiotski</user>       
      </vip>
   </car>
   <car>
      <id>2</id>
      <color>green</color>
      <color>red</color>
      <color>yellow</color>
      <vip>
        <user>Clooney</user>
        <user>Lopez</user>
        <user>Ford</user>       
      </vip>
   </car>
</catalog>

我正在与一些简单的事情作斗争:

a) 从汽车 id 0 开始计算“颜色”节点

b) 检索奥巴马的车牌

对于 a) 我知道如何识别汽车 id 0

/catalog/car/id=0

给了我一个 TRUE - 所以这是我在正确轨道上的证明。但是现在我怎样才能继续根据汽车 id 0 计算“颜色”节点呢?解决方案 postet here 不起作用,以及 following-sibling 导致 javax.xml.transformerException。有人知道怎么解决吗?

【问题讨论】:

    标签: xpath


    【解决方案1】:

    要使用id = 0 计算car 中的color 节点,您可以使用

    count(/catalog/car[id="0"]/color)
    

    返回3

    去拿奥巴马的车id:

    /catalog/car[.//user="Obama"]/id/text()
    

    返回0

    【讨论】:

    • 您好安德森,非常感谢您的回复。确实,您的计数语句有效并且很有帮助。在我将 " 替换为 ' 之后,您的第二个语句也有效(由于我正在使用我的 xpath.jar,这是必要的)再次,伟大而直接的帮助!
    猜你喜欢
    • 2015-12-18
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2013-06-12
    相关资源
    最近更新 更多