Explication détaillée de la façon dont PHP utilise DOMDocument pour faire fonctionner XML

巴扎黑
Libérer: 2023-03-15 07:34:02
original
9027 Les gens l'ont consulté

Cet article présente principalement la méthode d'analyse PHP et de génération de XML basée sur DOMDocument. Il analyse diverses techniques de fonctionnement courantes de PHP utilisant DOMDocument pour analyser les nœuds XML et générer des fichiers XML basés sur des exemples spécifiques. Les amis dans le besoin peuvent s'y référer. 🎜>

L'exemple de cet article décrit la méthode d'analyse PHP et de génération de XML basée sur DOMDocument. Je le partage avec vous pour votre référence, comme suit :

J'ai partagé avec vous quelques connaissances sur les opérations SimpleXML sur XML, mais en PHP il y a aussi DOMDocument en plus de simplexml. Cette fois je vais me concentrer sur le. utilisation de DOMDocument Générer du XML et analyser du XML séparément

1. Génération XML

L'opération DOMDocument XML est un peu plus compliquée que le simplexml précédent. , je pense que simplexml est comme dom4j en Java, le principe est le même quoi qu'il arrive. Si les nœuds et les attributs du DOMDocument sont considérés comme des branches et des feuilles, alors le DOMDocument du DOMDocument est la racine et les nœuds et les attributs sont tous montés sous cet objet. Ce sera très clair si vous regardez le code suivant


<?php
 $doc=new DOMDocument(&#39;1.0&#39;,&#39;utf-8&#39;);
 //创建根节点
 $root=$doc->createElement("StudentInfo");
 //创建第一个子节点
 $item=$doc->createElement("Item");
 $name=$doc->createElement("name","蔡依林");
 $studentnum=$doc->createElement("num","2009010502");
 //创建属性(phpdom可以把任何元素当做子节点)
 $id=$doc->createAttribute("id");
 $value=$doc->createTextNode(&#39;1&#39;);
 $id->appendChild($value);
 //在父节点下面加入子节点
 $item->appendChild($name);
 $item->appendChild($studentnum);
 $item->appendChild($id);
 $item2=$doc->createElement("Item");
 $name2=$doc->createElement("name","潘玮柏");
 $studentnum2=$doc->createElement("num","2009010505");
 $id2=$doc->createAttribute("id");
 $value2=$doc->createTextNode(&#39;2&#39;);
 $id2->appendChild($value2);
 $item2->appendChild($name2);
 $item2->appendChild($studentnum2);
 $item2->appendChild($id2);
 $root->appendChild($item);
 $root->appendChild($item2);
 //把根节点挂载在DOMDocument对象
 $doc->appendChild($root);
 header("Content-type: text/xml");
 //在页面上输出xml
 echo $doc->saveXML();
 //将xml保存成文件
 $doc->save("stu.xml");
?>
Copier après la connexion
Si vous regardez attentivement ce code, ce n'est en fait pas compliqué. Il peut y avoir des doutes là-dessus. l'attribut id, text Le nœud doit également être monté sous le DOMDocument, puis le nœud text doit être monté sous l'attribut. Jetons un coup d'œil au XML généré

En fait, DOMDocument génère d'abord des nœuds ou des attributs, et la relation hiérarchique du XML est finalement reflétée via addchild

2. Analyse DOMDocument


<?php
 $doc=new DOMDocument();
 //如果是解析xml字符串则使用loadXML
 $doc->load(&#39;stu.xml&#39;);
 //取得根节点
 $root=$doc->documentElement;
 //通过标记的名字取得对应的元素
 $items=$root->getElementsByTagName(&#39;Item&#39;);
 foreach($items as $key=>$val){
  // echo count($val->attributes);
  //id是第一个属性所以使用item(0),nodeValue用来取得节点的值
  echo $val->attributes->item(0)->name.":".$val->attributes->item(0)->nodeValue."  ";
  foreach($val->getElementsByTagName(&#39;name&#39;) as $key2=>$val2){
    echo $val2->nodeValue."  ";
  }
  foreach($val->getElementsByTagName(&#39;num&#39;) as $key3=>$val4){
    echo $val4->nodeValue."</br>";
  }
 }
?>
Copier après la connexion
La clé de l'analyse est la compréhension de la méthode getElementsByTagName, des attributs et des éléments. objectif de l'analyse XML. Tout le reste est assez simple. Jetez un œil à ce qui est analysé

De manière générale, c'est un peu plus gênant que simplexml, mais en tant que programmeur, cela peut être accepté.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!