2010-09-15 4 views
0

Possible en double:
How to parse and process HTML with PHP?comment analyser une page HTML avec PHP5 et DOM?

Je travaille sur un morceau de code qui devrait obtenir le contenu d'une balise html-très spécifique d'un document html donné.

$html = "<html>..........truncated.........<div>blablabla<br />xy</div>....."; 
$dom = new DomDocument(); 
$dom->loadHTML($html); 

$divs = $dom->getElementsByTagName('div'); 

echo $divs->item(0)->nodeValue.'<br>'; 

le code html est juste un exemple, mais montre le problème très je rencontre: je veux obtenir le contenu de ce DIV et j'ai besoin les balises internes à conserver! ce nodeValue (ainsi que « textContent ») ne, renvoie le contenu du noeud correct with all inner tags stripped (http://docs.php.net/manual/en/class.domnode.php)

je suis d'idées comment obtenir ce droit atm ... ce que j'ai besoin est l'équivalent à javascripts « innerHTML » ou si ... mais je ne peux pas trouver une telle méthode :(

comment puis-je obtenir ce droit?

Répondre

0

DOM est seulement bon à l'analyse syntaxique bien formé et 100% XML valide, donc à moins que vous utilisez XHTML valide 100%, il va échouer.

Ce que vous voulez utiliser est la bibliothèque PHP Simple HTML DOM Parser.

Il existe de nombreux tutoriels sur ce site pour vous aider avec ce dont vous avez besoin.

+2

DOM peut analyser correctement le code HTML réel lorsque vous le chargez avec 'DOMDocument :: loadHTML' ou' DOMDocument :: loadHTMLFile'. Cela utilisera alors le module HTML Parser de libxml. – Gordon

+0

Dans mon expérience, c'est au mieux. Cependant, la dernière fois que j'ai essayé était en 2009. Peut-être que c'est amélioré. –

0

avez-vous vu phpQuery? est peut-être trop pour ce que vous êtes essayer d'accomplir mais il vaut la peine de jeter un oeil à

Questions connexes