Je suis en train d'analyser un document HTML avec XPATH et je veux garder toutes les balises html internes.PHP XPATH du document HTML omettant toutes les balises. Je veux les garder
Le code HTML en question est une liste non ordonnée comportant de nombreux éléments de liste.
<ul id="adPoint1"><li>Business</li><li>Contract</li></ul>
Je suis l'analyse du document en utilisant le code PHP suivant
$dom = new DOMDocument();
@$dom->loadHTML($output);
$this->xpath = new DOMXPath($dom);
$testDom = $this->xpath->evaluate("//ul[@id='adPoint1']");
$test = $testDom->item(0)->nodeValue;
echo htmlentities($test);
Pour une raison quelconque la sortie a toujours les balises HTML omis de lui. Je suppose que c'est parce que XPATH n'était pas destiné à être utilisé de cette manière, mais est-ce qu'il y en a autour de ça? Je voudrais vraiment continuer à utiliser XPATH car je l'utilise déjà pour analyser d'autres zones de la page (simples éléments href) sans problème.
EDIT: Je sais qu'il existe un meilleur moyen d'obtenir les données en itérant à travers les éléments enfants de l'UL. Il y a une partie plus compliquée de la page que je veux aussi analyser (bloc de javascript), mais j'essaie de fournir un exemple plus facile à comprendre.
Le bloc réel de code que je veux est
<script language="javascript">document.write(rot_decode('<u7>Pbagnpg Qrgnvyf</u7><qy vq="pbagnpgQrgnvyf"><qg>Cu:</qg><qq>(58) 0078 8455</qq></qy>'));</script>
Il a le problème qu'il omet toutes les balises de fermeture, mais maintient les balises d'ouverture. Je suppose que c'est parce que XPATH essaie d'analyser les éléments internes plutôt que de les traiter comme une chaîne.
Si je tente et sélectionnez l'élément de script avec
$testDom = $this->xpath->evaluate("//div[@id='businessDetails']/script");
$test = $testDom->item(0)->nodeValue;
echo htmlentities($test);
ma sortie sera, que vous pouvez voir est manquant toutes les balises de fermeture.
document.write(rot_decode('<u7>Pbagnpg Qrgnvyf<qy vq="pbagnpgQrgnvyf"><qg>Cu:<qq>(58) 0078 8455'));
phunehehe, oui vous avez raison, mais je suis à la recherche d'une solution qui maintiendra les balises dans un élément. J'essaie vraiment d'obtenir une chaîne qui contient le code javascript dans son intégralité. – uberweb