基于给定节点的Xpath查询

时间:2017-05-22 13:54:09

标签: xpath

我有一个这个xml:

return view('emails.receipt')->with('donor', $donor); 

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

a)计算"颜色"来自汽车id 0的节点

b)检索奥巴马的车识号

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

<?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>

给了我一个真实的 - 所以这就是我在正确轨道上的证明。但是现在我怎样才能继续计算&#34;颜色&#34;基于car id 0的节点?解决方案postet here不起作用,following-sibling导致javax.xml.transformerException。有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

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

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

返回3

获得奥巴马的汽车id

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

返回0