我检查并在许多示例中
following-sibling::text()[1]
在强标签之后作为接收文本的正确答案给出。我用星号标记了我感兴趣的文本:
<?php
$html='
<html>
<head>
</head>
<body>
<div class="someclass">
<h2 class="h3">header 1</h2>
<ul class="bulleted">
<li><strong>prop1: </strong>**name**</li>
<li><strong>prop2: </strong>**street**</li>
<li><strong>prop is 3: </strong>**city**</li>
<li><strong>prop 4: </strong>**more**</li>
</ul>
</div>
</body>
</html>
';
$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$doc->loadHtml($html);
$data = simplexml_import_dom($doc);
$properties = $data->xpath('//strong/following-sibling::text()[1]');
var_dump($properties);
我总是得到的是 [strong] 的内容,而不是 [li] [/li] 中没有 [strong] 内容的文本:
array(4) {
[0] =>
class SimpleXMLElement#3 (1) {
public $strong =>
string(7) "prop1: "
}
[1] =>
class SimpleXMLElement#4 (1) {
public $strong =>
string(7) "prop2: "
}
[2] =>
class SimpleXMLElement#5 (1) {
public $strong =>
string(11) "prop is 3: "
}
[3] =>
class SimpleXMLElement#6 (1) {
public $strong =>
string(8) "prop 4: "
}
}
如果您指出我犯的错误,我会很高兴...