xml - 使用 XPath 查询同名元素

标签 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元素?

最佳答案

当在第一个参数中找到第二个参数的字符串值时,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/

相关文章:

java - 在gradle中的这一行编译 'com.batch.android:batch-sdk:1.5+'错误?

python - 在带有 ";"的文本之间划分标签

python - Selenium 中的相对选择器?

xml - 根据节点的值选择属性

php - 将 XML 用于 PHP 配置时的最佳实践?

java - 在android上的开放网络套接字上解析XML

java - Android - 扩展 ListActivity 为每个项目添加图像?

oracle - BPEL中的表达式构建器

JavaScript : injecting ID attribute to an &lt;input&gt; tag by XPATH

java - 通过Java修改XPath表达式?