我正在尝试在以下xml文件上构建xpath查询:
<recordGroup>
<records>
<year>1985</year>
<album>
<name> album1 </name>
<artist>artist1 </artist>
<label> labelA</label>
</album>
<album>
<name>album2 </name>
<artist>artist2 </artist>
<label> labelB</label>
</album>
</records>
<records>
<year>1986</year>
<album>
<name>album3 </name>
<artist> artist1 </artist>
<label>labelC</label>
</album>
<album>
<name>album4 </name>
<artist>artist2</artist>
<label> labelA</label>
</album>
</records>
</recordGroup>
我想检索以下查询:选择所有记录(艺术家,姓名和年份),其中label ='LabelA'。
XML结构可能不适合显示此数据,但我从其他软件获取此流,因此,我无法更改它。
有什么建议吗?
答案 0 :(得分:7)
这将带回包含标签为 labelA
的相册的完整records
//records[album/label='labelA']
您也可以使用
//records[album/label='labelA']/*[self::year or self::album[label='labelA']]
只会返回与{strong> labelA
匹配的year
和完整album
答案 1 :(得分:0)
试试这个:
var = doc(/ recordGroup / records [album [@ label =“LabelA”]]);