Maison > Article > développement back-end > Explication détaillée de la façon dont PHP implémente l'analyse et la génération de XML basée sur DOMDocument
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. 🎜 >
1. Génération de XML
<?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 pas compliqué. La possibilité est que ce soit le cas. est un peu dans l'attribut id. Question, le nœud de texte doit également être monté sous le DOMDocument, puis le nœud de texte 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 de comprendre la méthode getElementsByTagName et l'attribut attributs. et l'élément sont analysés Le point de 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é. .
Recommandations associées :
Utilisation de PHPDOMDocumentExplication détaillée des méthodes de fonctionnement XML
Classe d'opération XML PHPDOMDocument
Solution au problème des caractères chinois tronqués lors de l'enregistrement XML en PHP DOMDocument
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!