質問

Let's say i have this block of code,

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

What I would want is only the text "This is some text" without the child element's .class1 contents. I can do it in jquery using $('#id1').contents().eq(0).text(), how can i do this in phpQuery?

Thanks.

役に立ちましたか?

解決

my bad, i was doing

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

instead of

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

他のヒント

If compatibility is what you are after, and you want to traverse/manipulate elements as DOM objects, then perhaps the PHP DOM XML library is what you are after: http://www.php.net/manual/en/book.domxml.php

Your code would look something like this:

$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(); 

I'm sorry, I don't have time to run a test of this right now, but hopefully it sets you in the right direction, and forms the basis for a decent revision... There is a good list of DOM traversal functions in the PHP documentation though :)

References: 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top