Maison  >  Article  >  développement back-end  >  Exemple de la façon dont PHP utilise DOM et simplexml pour lire des documents XML

Exemple de la façon dont PHP utilise DOM et simplexml pour lire des documents XML

高洛峰
高洛峰original
2017-02-10 16:47:041443parcourir

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.

Pour plus d'exemples sur la façon dont PHP utilise DOM et simplexml pour lire des documents XML et des articles connexes, veuillez prêter attention au site Web chinois de PHP !

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