php - xpath - 检查元素是否出现多次

标签 php xml xpath

我正在尝试使用 xpath 检查某个元素是否出现多次。

XML:

<XML>
    <containers>
        <container id="1">
        </container>
        <container id="2">
        </container>
    </containers>
</XML>

我尝试使用以下简单的 xpath 表达式

$xml->xpath('/XML/containers/container');

我得到了:

Element='<container id="1">
        </container>'
Element='<container id="2">
        </container>'

但结果我想要一个类似数组的东西

$containers = array('container', 'container');

如何存档?

最佳答案

您不需要数组来检查匹配数。只需 count() XPath 的结果,即可得到您的数字:

$a = '<XML>
<containers>
    <container id="1">
    </container>
    <container id="2">
    </container>
</containers>
</XML>';
$xml = simplexml_load_string($a);
$containers = $xml->xpath('/XML/containers/container');
$totalContainers = count($containers); // 2

Demo

关于php - xpath - 检查元素是否出现多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426640/

相关文章:

python - 通过 Selenium 和 Webdriver 循环遍历 find_element_by_xpath() 的元素列表

php - 如何制作一个表格,连续打印数据库中所有相同的列?

java - Android:如何给 LinearLayout 最大宽度?

python - 不使用 WebDriverWait 我的代码返回 : element click intercepted/with WebDriverWait returns 'NoneType' object is not iterable

xml - 如何设置spring上下文:component-scan to scan "src/main/java" instead of "src/test.java" in unit test env

java - 获取当前动态web项目JAVA的路径

javascript - 在 dom 中使用 xpath 查找包含单词的文本节点

php - 如何在php中显示用户信息?

php - 查询 SQL 表以根据用户输入返回同一行的值

php - 插入触发器上的数据库 phpmyadmin