Maison  >  Article  >  développement back-end  >  Crawler PHP : Comment analyser des documents XML à l'aide de XPath

Crawler PHP : Comment analyser des documents XML à l'aide de XPath

王林
王林original
2023-06-13 15:16:051275parcourir

À l'ère d'Internet, les données sont un atout très important. La méthode d'obtention de données sur Internet est celle des robots d'exploration. Crawler fait référence à la simulation d'utilisateurs réels pour visiter le site Web et à l'exploration automatique des données sur la page Web via le programme. Le robot d'exploration PHP est très important. Il peut explorer les données de divers sites Web et nous fournir une multitude d'informations et de ressources grâce à l'analyse, au traitement et à l'exploration de données. Dans les robots d'exploration PHP, l'utilisation de XPath pour analyser des documents XML est une technologie très importante. Cet article présente en détail ce qu'est XPath, la syntaxe de XPath et comment XPath est appliqué aux robots d'exploration PHP.

1. Qu'est-ce que XPath

XPath est un langage utilisé pour rechercher des informations au format de document XML. XPath peut utiliser des expressions de chemin pour sélectionner des nœuds ou un groupe de nœuds dans un document XML. XPath est l'abréviation de XML Path Language, qui est un langage de chemin XML XPath localise des données spécifiques dans le document en recherchant des éléments spécifiques dans le document XML et en utilisant des expressions de chemin pour saisir la structure du document.

2. Syntaxe XPath

La syntaxe de base de XPath comprend des expressions de chemin, des nœuds et des prédicats (Prédicats), qui sont présentés en détail ci-dessous.

  1. Expression de chemin

L'expression de chemin est la syntaxe de base de XPath, qui est composée du symbole barre oblique "/" ou d'une double barre oblique Une chaîne de caractères commençant par le symbole "//", utilisé pour localiser le nœud ou le groupe de nœuds auquel accéder dans le document. Par exemple, l'expression de chemin suivante sélectionne tous les éléments de livre de niveau supérieur dans le document.

/bookstore/book

  1. Node

Dans XPath, les nœuds peuvent être définis en tant qu'éléments dans des documents XML, les attributs , texte, espaces de noms, instructions de traitement, etc. Les expressions de chemin peuvent utiliser le symbole barre oblique pour parcourir les nœuds d'un document XML. Par exemple, "/" représente le nœud racine, "librairie" représente le nœud de premier niveau sous le nœud racine du document XML et "book" représente tous les nœuds nommés livre au niveau suivant.

  1. Prédicats

Le prédicat de XPath est une instruction conditionnelle qui peut filtrer les nœuds qui remplissent les conditions. L'expression du prédicat est représentée par des crochets "[]". Par exemple, le prédicat dans l'exemple suivant est [@category='WEB'], ce qui signifie sélectionner le nœud de livre dont la valeur de l'attribut de catégorie est « WEB ».

/bookstore/book[@category='WEB']

3. Comment appliquer XPath au robot d'exploration PHP

Dans le robot d'exploration PHP, nous Vous pouvez utiliser les classes DOMDocument et DOMXPath pour traiter les documents XML d'entrée. Parmi eux, la classe DOMDocument est utilisée pour analyser les documents XML et la classe DOMXPath est une API (interface de programme d'application) permettant de sélectionner des nœuds à partir d'objets DOMDocument basés sur des expressions XPath.

Ajoutez le code suivant dans le fichier PHP pour implémenter l'analyse XPath des documents XML :

$url = 'http://example.com/data.xml'; // XML 文档路径
$xml = file_get_contents ($url); //读取 XML 文件
$doc = new DOMDocument(); 
$doc->loadXML($xml); //载入 XML 文件
 
$xpath = new DOMXPath($doc); 
$query = "//bookstore/book[@category='WEB']"; //XPath 表达式
 
$books = $xpath->query($query);
 
foreach ($books as $book){ 
    echo $book->getAttribute("title") . "
"; //打印符合条件的 book 节点 title 属性
}

La fonction du code ci-dessus :

    #🎜🎜 #Read Récupérez et chargez le fichier XML.
  1. Utilisez la classe DOMXPath pour appeler des expressions XPath.
  2. Utilisez la méthode query() pour renvoyer une liste d'objets nœuds. Cette liste contient tous les nœuds de livre qui remplissent les conditions.
  3. Utilisez une boucle foreach pour imprimer l'attribut title du nœud de livre qui remplit les conditions.
Dans le code ci-dessus, "//bookstore/book[@category='WEB']" signifie sélectionner tous les nœuds nommés livre, où la valeur de l'attribut catégorie est égale à Nœud 'WEB'.

4. Résumé

La simplicité et la flexibilité de la syntaxe XPath offrent beaucoup de commodité aux robots d'exploration PHP. La combinaison de la syntaxe XPath et du robot d'exploration PHP résout le problème de l'obtention de données Internet. Il convient de noter que lorsque vous utilisez XPath pour analyser des documents XML, vous devez choisir la syntaxe correcte en fonction des besoins réels pour obtenir des informations plus précises.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn