xpath where子句

时间:2012-12-26 15:57:21

标签: xml xpath

我正在尝试在以下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结构可能不适合显示此数据,但我从其他软件获取此流,因此,我无法更改它。

有什么建议吗?

2 个答案:

答案 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”]]);