Xml xpath通过属性获取节点值等于另一个节点';s值
我是XPath新手,有以下xml: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
`<?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]
然后可以添加位置谓词以选择特定关系