Maison >développement back-end >tutoriel php >Explication détaillée de la façon dont PHP utilise DOM et simplexml pour lire des documents XML

Explication détaillée de la façon dont PHP utilise DOM et simplexml pour lire des documents XML

墨辰丷
墨辰丷original
2018-05-25 17:13:061515parcourir

Cet article présente principalement la méthode PHP utilisant DOM et simplexml pour lire des documents XML. Il analyse les compétences opérationnelles associées de PHP utilisant DOM et simplexml pour créer, charger et lire des fichiers XML sous forme d'exemples. Vous pouvez vous référer à ce qui suit

L'exemple de cet article décrit comment PHP utilise DOM et simplexml pour lire des documents XML. Partagez-le avec tout le monde pour référence, comme suit :

Exemple Utilisez DOM pour obtenir les titres de tous les romans de Jin Yong dans le document XML suivant. L'emplacement du document XML est ./books.xml :

<?xml version="1.0" encoding="utf-8"?>
<root>
 <book>
  <title>天龙八部</title>
  <author>金庸</author>
 </book>
 <book>
  <title>陆小凤</title>
  <author>古龙</author>
 </book>
 <book>
  <title>倚天屠龙记</title>
  <author>金庸</author>
 </book>
 <book>
  <title>西游记</title>
  <author>吴承恩</author>
 </book>
 <book>
  <title>神雕侠侣</title>
  <author>金庸</author>
 </book>
 <book>
  <title>射雕英雄传</title>
  <author>金庸</author>
 </book>
</root>

Utilisez le code DOM pour implémenter :

Étapes de lecture du document XML DOM : 1. Créer un objet DOM—— 》2. Charger le contenu du document DOM——》3. Intercepter la balise où se trouve le contenu à lire——》obtenir le contenu à lire.

header(&#39;Content-type:text/html;charset=utf-8&#39;);
$arr=array();
$dom = new DOMDocument();//创建DOM对象
$dom->load(&#39;./books.xml&#39;);//载入xml文档
print_r($dom);
echo &#39;<hr>&#39;;
$dom = $dom->getElementsByTagName(&#39;book&#39;);//截取标签
for($i=0;$i<$dom->length;$i++){
 if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText==&#39;金庸&#39;){
  $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.&#39;<br />&#39;;//获取内容
 }
}
print_r($arr);

Ce qui est renvoyé après avoir utilisé getElementsByTagName et childNodes sont des objets, ils doivent donc utiliser item(int) par la suite, même si les objets qu'ils renvoient ne contiennent que Un élément doit également être spécifié avec item(0), sinon une erreur se produira.

Utilisez le code simplexml pour implémenter :

$simxml = simplexml_load_file(&#39;./books.xml&#39;);
$t = $simxml->book;
$arr=array();
foreach ($t as $v){
 if($v->author==&#39;金庸&#39;){
  $arr[] = (string)$v->title;
 }
}
print_r($arr);

Après avoir utilisé simplexml_load_file, l'objet est renvoyé Le projet. a à la fois des objets et des tableaux. Qu'il s'agisse d'un objet ou d'un tableau, vous pouvez utiliser foreach pour parcourir le contenu. Le dernier contenu obtenu par cette instance, $v->title, est en fait un objet, il doit donc être converti en chaîne à l'aide de string.

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.


Recommandations associées :

PHP implémente la méthode de génération et d'analyse XML basée sur SimpleXML

Introduction à l'utilisation de SimpleXML pour l'analyse et la génération PHP XML

Explication détaillée de l'utilisation de la fonction php SimpleXML()

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