我是Xpath的新手。
假设我有一个xml目录将商品导入电子商店:
<categories>
<category id="26">Jackets</category>
<category id="27">Jeans</category>
<category id="28">Sweaters</category>
<category id="29">Shirts</category>
...
</categories>
<goods>
<good id="123">
<categoryId>26</categoryId>
<label>D&G</label>
<color>Black</color>
<size>M, XL</size>
</good>
...
<goods>
目录的第一部分是商品类别列表,第二部分是商品清单。
每个商品都有<categoryId>
,其值等于<category>
列表中某些<categories>
的“id”属性。
从上面的代码我需要得到这样的好的描述:类别:夹克;标签:D&amp; G;颜色:黑色;大小:M,XL。
可以直接从<good>
上下文中选择 标签,颜色和尺寸,这不是问题所在。但对于类别,我只有一个26,它与<categories>
上下文中 Jackets 类别的ID相匹配。
所以我的目标是使用<category id="26">Jackets</category>
节点的值选择<categoryId>26</categoryId>
节点的值。
非常感谢。
答案 0 :(得分:1)
要选择与category
为123的good
相关联的@id
,请使用此XPath:
//categories/category[@id = //goods/good[@id='123']/categoryId]
答案 1 :(得分:0)
假设您已经从26
元素检索了值categoryId
,那么XPath将使用&#34;夹克&#34;在它中将是:
//categories/category[@id = "26"]
根据您使用的语言,您可能需要使用字符串连接合并,或者在XSLT中,您可以直接在表达式中使用变量:
//categories/category[@id = $categoryId]
(但是,在XSLT中,更好的方法是使用密钥)。