2011-12-23 2 views
0

Допустим, у меня есть этот блок кода,Выберите первый DOM элемент типа текста с помощью phpQuery

<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?

Спасибо.

+0

Вы пробовали делать только, что с phpQuery? Если да, то каков был результат? –

+0

my bad, я делал pq ('# id1.contents(). Eq (0) .text()') вместо pq ('# id1') -> contents() -> eq (0) -> text() –

+0

Вы должны добавить это как ответ на свой вопрос, подождать требуемую задержку в несколько дней, а затем принять его в качестве ответа. Вы получите репутацию, и это будет снято с списка непонятных вопросов. –

ответ

2

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

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

вместо

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

0

Если совместимость это то, что вы после этого, и вы хотите, чтобы пересечь/манипулировать элементами как объекты 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(); 

извини, у меня нет времени, чтобы запустить тест этого прямо сейчас, но, надеюсь, он устанавливает вас в правильном направлении, и формирует основу для достойного пересмотра ... Eсть хороший список функций обхода 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

Смежные вопросы