2013-06-09 13 views
11

Ho un documento da cui voglio estrarre il div specifico con il suo contenuto non trattato. faccio: interrogazioneCome ottenere l'HTML completo dal metodo DOMXPath :: query()?

$dom = new DOMDocument(); 
$dom->loadHTML($string);//that's HTML of my document, string 

e XPath:

$xpath = new DOMXPath($dom); 
$xpath_resultset = $xpath->query("//div[@class='text']"); 
/*I'm after div class="text"*/ 

Ora io item(0) metodo su quello che ottengo con $xpath_resultset

$my_content = $xpath_resultset->item(0); 

ciò che ottengo è oggetto (non string) $ my_content che posso echo o settype() per string, ma come risultato ottengo è con markup completamente spogliato?

Cosa fare per ottenere all da div class = 'testo' qui?

+0

Hai provato i metodi 'saveXML' /' saveHTML'? –

+0

Errore irreversibile: chiamata al metodo non definito DOMElement :: saveHTML() in C: \ wamp \ www \ 3 \ test.php sulla riga 17. Ho fatto ... –

+0

Quindi aggiorna PHP o usa 'saveXML'. –

risposta

29

basta passare il nodo al metodo DOMDocument::saveHTML:

$htmlString = $dom->saveHTML($xpath_resultset->item(0)); 

questo vi darà una rappresentazione di stringa di quel particolare DOMNode e tutti i suoi figli.

+0

Vero. Grazie per la risposta. –

+6

Questo metodo richiede PHP 5.3.6, un'alternativa è usare DOMDocument :: saveXML che richiede solo PHP 5. – Kyle

Problemi correlati