Lors de la manipulation des documents XML dans PHP, XPath est un outil très puissant qui aide les développeurs à localiser et à manipuler rapidement les éléments dans XML. Cet article utilisera plusieurs exemples pour décrire comment utiliser XPATH dans PHP pour interroger les documents XML.
XML (langage de balisage extensible) est un langage de balisage couramment utilisé pour stocker et transmettre des données. Il a une structure flexible et convient à différents scénarios d'échange de données. XPath est une langue utilisée pour localiser les nœuds dans des documents XML. Il décrit l'emplacement des nœuds à travers des expressions de chemin.
Dans PHP, nous pouvons utiliser les extensions DOM pour manipuler des documents XML et utiliser XPATH pour interroger les nœuds via la classe DOMXPATH. Voici un exemple XML simple:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2003</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">PHP Cookbook</title>
<author>David Sklar</author>
<year>2014</year>
<price>40.00</price>
</book>
</bookstore>
Tout d'abord, nous pouvons utiliser XPath pour sélectionner tous les nœuds de livre. Voici le code PHP qui implémente cette fonction:
$xml = new DOMDocument();
$xml->load('books.xml');
$xpath = new DOMXPath($xml);
$books = $xpath->query('//book');
foreach ($books as $book) {
// Traiter chaque livre
}
Dans le code ci-dessus, l'expression XPATH "// livre" sélectionnera tous les nœuds "livre". Nous pouvons ensuite utiliser la boucle «ForEach» pour parcourir ces nœuds et les traiter.
Ensuite, nous pouvons sélectionner les nœuds en fonction des attributs spécifiques. Par exemple, sélectionnez tous les livres avec une catégorie de "cuisine":
$xpath = new DOMXPath($xml);
$books = $xpath->query('//book[@category="cooking"]');
foreach ($books as $book) {
// Traitement avec "cooking" Livres en catégories
}
Grâce à l'expression XPATH "// book [@ catégorie = 'Cooking']", nous pouvons sélectionner tous les nœuds de livre avec la catégorie "cuisine".
Les livres peuvent également être filtrés par l'existence de nœuds enfants. Par exemple, sélectionnez tous les livres qui contiennent le nœud enfant "Title":
$xpath = new DOMXPath($xml);
$books = $xpath->query('//book[title]');
foreach ($books as $book) {
// Le traitement comprend "title" Livres pour enfants
}
Cette expression xpath "// book [title]" sélectionne tous les nœuds de livre qui contiennent au moins un nœud enfant "title".
Avec XPath, les développeurs peuvent manipuler efficacement les documents XML dans PHP, localiser et filtrer rapidement des éléments spécifiques. Cet article montre plusieurs applications de requête XPath courantes, dans l'espoir de vous aider à mieux maîtriser les compétences de fonctionnement PHP et XML.