我有以下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;通过它自己?谢谢!
答案 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
变量是一个数组(只保存一个元素),所以我循环它以打印所需的输出。