Проблем с PHP DOMXPath

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

Трябва да взема всички елементи в идентификатора с думата "пост".

Пример:

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

Въпрос номер две: Трябва да получа тези елементи с HTML тагове, но $obj->nodeValue връща текст без html тагове.


person Kirill Firsov    schedule 26.05.2011    source източник


Отговори (1)


Можете да използвате функцията xpath starts-with, за да филтрирате възлите във вашия XPath, ако всички възли, които искате, започват с "post". Например;

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

За втората част мисля, че вече е отговорено - PHP DOMDocument премахване на HTML тагове

person andyb    schedule 26.05.2011