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

「post」という単語を含むid内のすべてのアイテムを取得する必要があります。

例:

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

質問 2: この要素を HTML タグ付きで取得する必要がありますが、$obj->nodeValue は HTML タグなしのテキストを返します。

4

1 に答える 1

2

starts-with必要なすべてのノードが「post」で始まる場合、xpath 関数を使用して XPath 内のノードをフィルタリングできます。例えば;

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

2番目の部分については、すでに回答済みだと思います-PHP DOMDocument stripping HTML tags

于 2011-05-26T20:28:38.500 に答える