php/xpath : Getting the content in nested divs

标签 php xpath

我有以下 html 代码:

<div class='class1'> Content 1
<div class='class2'> Content 2
</div>
</div>

我想使用 xpath 仅获取“class1”和“class2”之间的内容,即“Content 1”本身。这是我到目前为止所拥有的:

$classname = 'class1';
$results = $xpath->query("//*[@class='" . $classname . "']");
echo $results->item($x)->nodeValue;

但是它又回来了

Content 1 Content 2

无论如何,只获取“内容 1”本身?谢谢!

最佳答案

很难确切地知道您的代码出了什么问题,因为我们不知道 $x 代表什么。您拥有的 XPath 是正确的,但从您的代码中我无法判断您如何打印输出。以下是我认为您想要实现的目标的一个工作示例:

PHP

<?php

$string = 
<<<XML
    <div class='class1'> Content 1
        <div class='class2'> Content 2
        </div>
    </div>
XML;

$xml = new SimpleXMLElement($string);

$results = $xml->xpath('//div[@class="class1"]');
foreach($results as $result) {
    echo $result;
} 

?>

输出

Content 1

这将创建一个“简单的 xml 元素”,然后使用 XPath //div[@class="class1"] 查找所需的元素。返回的 $results 变量是一个数组(仅包含一个元素),因此我循环遍历它以打印所需的输出。

关于php/xpath : Getting the content in nested divs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33333699/

相关文章:

php - 如何使用php重新排列以下数据?

php - 如何在 Microframework Lumen 中安装 Blade 模板?

php - 在 Laravel 8 中创建带有门面的自定义包

mysql - 使用 XPath 和编码导入 xml

xslt - 用于选择没有同名子子项的子项的 XPath

php - 使用 HTML 表单更新 MySQL

php - 如何将国家代码转换为国家名称

python - 使用 python lxml xpath 遍历表中的所有行

xml - 查询SQL Server 2016数据库中的XML数据

xml - Sonar XML 插件 : XPath rule and namespaces