使用XPath查询相同的命名元素

时间:2011-12-14 18:56:20

标签: xml xpath

我编写了一个Xpath查询来查找一个包含字符串的nodeValue的元素。

/campaigns/campaign[contains("7218322441485795", creative_id)] 

但是,我查询的XML有多个<creative_id>元素;

<campaigns>
    <campaign>
        <creative_id>41485795</creative_id>
        <creative_id>41485759</creative_id>
        <creative_id>41485694</creative_id>
        <resources>
        ....

问题是查询只评估第一个creative_id元素而不是第二个&{第三

如何将XPath查询编写为不限于第一个creative_id元素?

1 个答案:

答案 0 :(得分:3)

当在第一个参数中找到第二个参数的字符串值时,XPath contains函数返回true。你的订购似乎很可疑。您当前正在查找给定字符串中的creative_id字符串值,而不是creative_id中该字符串的值。

假设参数排序正确,如果任何campaign个子元素与提供的字符串的一部分匹配,则以下表达式返回creative_id元素:

/campaigns/campaign[creative_id[contains("7218322441485795", .)]]