Выберите первый элемент DOM типа text, используя phpQuery - PullRequest
0 голосов
/ 24 декабря 2011

Допустим, у меня есть этот блок кода,

<div id="id1">
  This is some text
  <div class="class1"><p>lala</p> Some markup</div>
</div>

Мне нужен только текст «Это какой-то текст» без содержания .class1 дочернего элемента.Я могу сделать это в jquery, используя $('#id1').contents().eq(0).text(), как я могу сделать это в phpQuery?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 января 2012

плохо, я делал

pq('#id1.contents().eq(0).text()')

вместо

pq('#id1')->contents()->eq(0)->text()

0 голосов
/ 24 декабря 2011

Если вам нужна совместимость, и вы хотите просматривать / манипулировать элементами как объектами DOM, тогда, возможно, вам нужна библиотека PHP DOM XML: http://www.php.net/manual/en/book.domxml.php

Ваш код будет выглядеть примерно так:

$xml = xmldoc('<div id="id1">This is some text<div class="class1"><p>lala</p> Some markup</div></div>');
$node = $xml->get_element_by_id("id1");
$content = $node->get_content(); 

Извините, у меня нет времени, чтобы выполнить этот тест прямо сейчас, но, надеюсь, он укажет вам правильное направление и послужит основой для достойного пересмотра ... Есть хороший список Хотя функции обхода DOM в документации PHP:)

Ссылки: http://www.php.net/manual/en/book.domxml.php, http://www.php.net/manual/en/function.domdocument-get-element-by-id.php, http://www.php.net/manual/en/function.domnode-get-content.php

...