Maison > Article > développement back-end > Explication détaillée de la façon dont PHP utilise DOMDocument pour faire fonctionner XML
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ément1. 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('1.0','utf-8'); //创建根节点 $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('1'); $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('2'); $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"); ?>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('stu.xml'); //取得根节点 $root=$doc->documentElement; //通过标记的名字取得对应的元素 $items=$root->getElementsByTagName('Item'); 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('name') as $key2=>$val2){ echo $val2->nodeValue." "; } foreach($val->getElementsByTagName('num') as $key3=>$val4){ echo $val4->nodeValue."</br>"; } } ?>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!