XPath查询匹配两个属性但只返回一个

时间:2015-05-27 15:36:19

标签: xml xpath

我需要一个只返回“产品A”ID的XPath查询。没有位置标签,我有一个巨大的xml。

 //Entities/Entity[@Type="defect"]/Fields/Field[@Name="project"]/Value[.="Product
 A"]

XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Entities TotalResults="234">
    <Entity Type="defect">
        <Fields>
            <Field Name="id">
                <Value>272</Value>
                </Field>
            <Field Name="project">
                <Value>Product A</Value>
            </Field>
        </Fields>
    </Entity>
    <Entity Type="defect">
        <Fields>
            <Field Name="id">
                <Value>2829</Value>
            </Field>
            <Field Name="project">
                <Value>Product B</Value>
            </Field>
        </Fields>
    </Entity>
</Entities>

1 个答案:

答案 0 :(得分:1)

你快到了。 []是前一个位置路径的条件。因此,所有缺陷的id字段值的表达式为:

/Entities/Entity[@Type="defect"]/Fields/Field[@Name="id"]/Value

如果延长条件,可以进一步限制结果:

/Entities/Entity[
  @Type="defect" and (Fields/Field[@Name = "project"]/Value = "Product A")
]/Fields/Field[@Name="id"]/Value