Nestecha
Invité n'ayant pas de compte PHPfrance
21 nov. 2014, 06:33
Assez simplement pour que tu comprennes, copie ça dans une page "test.php" :
<html>
<head>
<meta charset="UTF-8"/>
</head>
<body>
<select name="test" id="test">VALUE</select>
</body>
</html>
<?php
$oDoc = new DOMDocument(); // on crée un objet dom document
libxml_use_internal_errors(true);
$oDoc->loadHTMLFile('test.php'); // on charge la page dans l'objet
$oXPath = new DOMXPath($oDoc); // on crée un objet XPath qui permet l'utilisation des XPath dans l'objet dom document préalablement crée
$aDatas = array();
$aDatas = $oXPath->query('//select'); // on fait une requête XPath sur l'élément qu'on cherche
foreach($aDatas as $oData) { // on boucle pour atteindre la "node" qui est un objet, qui est l'élément en question. Cette "node" à plusieurs méthodes disponibles, dont "nodeValue" qui est équivalent à ->innertext dans simple html dom parser.
echo $oData->nodeValue;
}
L'avantage c'est bien sûr la rapidité du code en lui même, mais c'est aussi le XPath.
Le XPath c'est magique quand c'est bien utilisé, et bien plus efficace que dom parser. C'est la raison principale pour laquelle j'utilise DOMDocument plutôt que simplehtmldomparser.
Pour tester, ouvre la console de débuggage (F12), cherche un élément qui t'intéresse dans une page, clique droit et fait "copier XPath". Et hop t'as le chemin direct vers cet élément et il te suffira de le copier dans ta query pour l'obtenir dans ton code
Souvent le XPath que tu obtiens est "brut", et il vaut mieux en faire un soi même en observant la structure du code de la page ciblée, mais je te conseille vraiment d'y jeter un coup d'oeil !