我编写了一个 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
元素?
最佳答案
当在第一个参数中找到第二个参数的字符串值时,XPath contains
函数返回 true
。您的订单似乎很可疑。您当前正在给定字符串中查找 creative_id
的字符串值,而不是 creative_id
中该字符串的值。
假设参数排序正确,如果以下表达式的任何 creative_id
子元素与提供的字符串的一部分匹配,则以下表达式将返回一个 campaign
元素:
/campaigns/campaign[creative_id[contains("7218322441485795", .)]]
关于xml - 使用 XPath 查询同名元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8510115/