php / xpath:获取嵌套div中的内容

时间:2015-10-25 18:56:51

标签: php xpath

我有以下HTML代码:

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

我想使用xpath只获取&#39; class1&#39;之间的内容。和&#39; class2&#39;,又名&#39;内容1&#39;通过它自己。这就是我到目前为止所做的:

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

但它回来了

Content 1 Content 2

无论如何只需获得内容1&#39;通过它自己?谢谢!

1 个答案:

答案 0 :(得分: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元素&#39;然后使用XPath //div[@class="class1"]查找所需的元素。返回的$results变量是一个数组(只保存一个元素),所以我循环它以打印所需的输出。