PHP XPath 问题

标签 php xml xpath

有一个真正的 Xpath 问题。我正在尝试将节点与某个值匹配。

这是一个示例 XML 片段。

http://pastie.org/private/xrjb2ncya8rdm8rckrjqg

我正在尝试匹配给定的 MatchNumber 节点值以查看是否有两个或更多。假设这存储在一个名为 $data 的变量中,我正在使用以下表达式。自从我做了很多 XPath 以来已经有一段时间了,因为这些天大多数东西似乎都是 JSON,所以请原谅任何新手疏忽。

$doc = new DOMDocument;
$doc->load($data);
$xpath = new DOMXPath($doc);
$result = $xpath->query("/CupRoundSpot/MatchNumber[.='1']");

我需要基本上匹配任何匹配编号值为 1 的节点,然后确定结果长度是否大于 1(即已找到 2 个或更多)。

非常感谢您的帮助。

最佳答案

您的 XML 文档有一个默认命名空间:xmlns="http://www.fixtureslive.com/" .
您必须 register this namespace在 xpath 元素上并在查询中使用(注册的)前缀。

$xpath->registerNamespace ('fl' , 'http://www.fixtureslive.com/');
$result = $xpath->query("/fl:ArrayOfCupRoundSpot/fl:CupRoundSpot/fl:MatchNumber[.='1']");
foreach( $result as $e ) {
    echo '.';   
}

关于PHP XPath 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795443/

相关文章:

php - 使用 PHP 接收 JSON POST

javascript - 一页中的 jquery 表单验证和 php 脚本

javascript - 在javascript中将xml中的 ' & '替换为 ' & '

java - 使用嵌套循环并返回多个值来解析 XML

xml - importxml google 电子表格 - 新 Google 表格中出现 "xml content cannot be parsed"错误

xml - XPath 查找其属性包含文本且不区分大小写的元素?

xpath - Xpath表达式问题

php - 拉维尔 5 : how can I retrieve and display all posts that belong to certain category

java - 在 YAML 嵌套数据中搜索值

php - 如何配置 PHP 使用 mysql 而不是 sqlite