2
$xpath = new DOMXpath($doc);
$res = $xpath->query(".//*[@id='post2679883']/tr[2]/td[2]/div[2]");
foreach( $res as $obj ) {
    var_dump($obj->nodeValue);
}

我需要将id中带有“post”一词的所有项目都拿走。

例子:

<div id="post2242424">trarata</div>
<div id="post114525">trarata</div>
<div id="post8568686">trarata</div>

问题二:我需要使用 HTML 标签获取这些元素,但是$obj->nodeValue 返回的文本没有 html 标签。

4

1 回答 1

2

如果您想要的所有节点都以“post”开头,则可以使用 xpath 函数starts-with过滤 XPath 中的节点。例如;

$xpath->query(".//*[starts-with(@id, 'post')]/tr[2]/td[2]/div[2]");

对于第二部分,我想已经回答过了——PHP DOMDocument stripping HTML tags

于 2011-05-26T20:28:38.500 回答