【问题标题】:Xpath query containsXpath 查询包含
【发布时间】:2012-07-12 19:04:20
【问题描述】:

我有以下代码:

$xml = simplexml_load_file($url);

$query = '/root/parent[Model="Corolla"]';

//RUN QUERY ON XML
$xQuery = $xml->xpath($query);

这里是 XML 文件:

<root>
   <parent>
     <Model>Corolla A/C</Model>
   </parent>
</root>

如果我正在搜索确切的字符串“Corolla”,此代码效果很好。我遇到的问题是某些值类似于“卡罗拉 A/C 状况良好”

有没有一种方法可以查询包含单词 Corolla 而不是确切字符串 Corolla 的任何模型元素的 XML 文件?

编辑:我添加了我的 XML 帮助澄清示例。

【问题讨论】:

    标签: php xml xpath simplexml


    【解决方案1】:

    在这种特殊情况下,我建议使用 starts-with 函数而不是 contains(假设您的所有模型都以单词“Corolla”开头):

    编辑

    根据您的编辑,您必须将查询更改为:

    /root/parent/Model[starts-with(., 'Corolla')]
    

    您也可以查看Zvon XSLT Tutorial。读起来很不错。

    【讨论】:

    • 我刚刚编辑了原始帖子,以展示我的 XML 文件可能是什么样子的示例。使用@Model 时,它可以与我展示的示例一起使用吗?因为如果我没记错的话,花冠是作为值而不是属性输入的。感谢您的帮助,我将收藏本教程。
    【解决方案2】:
    /root/parent[contains(@Model, 'Corolla')]
    

    注意模型上的@...这是必要的,以表明您正在使用parent标签的属性,而不是名称恰好是Model的其他标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多