Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml xpath通过属性获取节点值等于另一个节点';s值_Xml_Xpath - Fatal编程技术网

Xml xpath通过属性获取节点值等于另一个节点';s值

Xml xpath通过属性获取节点值等于另一个节点';s值,xml,xpath,Xml,Xpath,我是XPath新手,有以下xml: `<?xml version="1.0" encoding="UTF-8"?> <catalog> <colors> <color id="1">green</color> <color id="2">red</color> <color id="3">yellow</color> </colors> &l

我是XPath新手,有以下xml:

`<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <colors>
    <color id="1">green</color>
    <color id="2">red</color>
    <color id="3">yellow</color>
  </colors>
  <items>
    <item id="095">
       <title>pencil</title>
      <colorId>3</colorId>
    </item>
    <item id="100">
      <title>pen</title>
      <colorId>1</colorId>
    </item>
    <item id="200">
      <title>ruler</title>
      <colorId>2</colorId>
    </item>
  </items>
</catalog>`
`
绿色
红色
黄色的
铅笔
3.
笔
1.
尺子
2.
`
如您所见,colorId值对应于颜色id属性,因此“pencil”是“黄色”(3),“pen”是“绿色”(1),“标尺”是“红色”(2)。 问题是如何通过colorId值获取每个项目的值


提前感谢。

假设我理解了这个问题——您要查找具有特定颜色的
s——您要查找的是XPath。例如:

/catalog/items/item[colorId=2]

将找到其子级内容等于2的s。

假设我理解了这个问题——您要查找具有特定颜色的
s——您要查找的是XPath。例如:

/catalog/items/item[colorId=2]

将查找其子项内容等于2的s。

这将基于
id
返回
标题

/catalog/items/item[colorId = /catalog/colors/color/@id]/title

这将返回与
colorId
对应的
color

/catalog/colors/color[@id = /catalog/items/item/colorId]

然后,您可以添加位置谓词来选择特定的关系。

这将基于
id
返回
标题

/catalog/items/item[colorId = /catalog/colors/color/@id]/title

这将返回与
colorId
对应的
color

/catalog/colors/color[@id = /catalog/items/item/colorId]
然后可以添加位置谓词以选择特定关系