如何从另一个元素中选择包含特定属性的元素值?
我尝试过//artist[@country='USA']/title
,但没有返回结果
下面是我的xml的结构
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>I DON'T WANT TO MISS A THING</title>
<artist country="USA">AEROSMITH</artist>
<price>9.90</price>
<year>1998</year>
</cd>
<cd>
<title>(EVERYTHING I DO) I DO IT FOR YOU</title>
<artist country="CANADA">BRYAN ADAMS</artist>
<price>10.20</price>
<year>1991</year>
</cd>
</catalog>
预期的输出显示具有来自美国国家/地区的艺术家的标题
答案 0 :(得分:1)
title
不是artist
的子代,而是其父代的子代:
//artist[@country='USA']/../title
或者,如果title
始终位于artist
之前,则可以使用
//artist[@country='USA']/preceding-sibling::title
答案 1 :(得分:1)
很难看到,因为您的XML没有缩进,但是您正在查看“ cd”元素。
这是我要使用的XPath:
/catalog/cd[artist/@country='USA']/title