Heim > Artikel > Backend-Entwicklung > Detaillierte Erklärung, wie PHP das Parsen und Generieren von XML basierend auf DOMDocument implementiert
Dieser Artikel stellt hauptsächlich die Methode zum Parsen und Generieren von XML basierend auf DOMDocument vor. Er analysiert verschiedene gängige Betriebstechniken von PHP, um XML-Knoten zu analysieren und XML-Dateien basierend auf bestimmten Beispielen zu generieren
1. Die DOMDocument-Operation von XML ist meiner Meinung nach etwas komplizierter als dom4j in Java Was das Prinzip ist, ist das Gleiche. Wenn die Knoten und Attribute im DOMDocument als Zweige und Blätter betrachtet werden, ist das DOMDocument des DOMDocuments die Wurzel, und alle Knoten und Attribute werden unter diesem Objekt gemountet. Es wird sehr klar, wenn Sie sich den folgenden Code ansehen
<?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"); ?>
Wenn Sie sich diesen Code genau ansehen, ist er möglicherweise nicht kompliziert Das id-Attribut muss ebenfalls unter dem DOMDocument gemountet werden, und dann muss der Textknoten unter dem Attribut gemountet werden. Werfen wir einen Blick auf die generierte XML
Tatsächlich generiert DOMDocument zuerst Knoten oder Attribute, und die hierarchische Beziehung von XML wird schließlich durch addchild widergespiegelt
2. DOMDocument-Analyse
<?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>";
}
}
?>
Der Schlüssel zum Parsen ist das Verständnis der getElementsByTagName-Methode, der Attribute, der Attribute und der Elemente Wird zum Parsen des XML-Fokus verwendet. Alles andere ist ziemlich einfach. Schauen Sie sich an, was analysiert wird.
Im Allgemeinen ist es etwas schwieriger als Simplexml, aber als Programmierer kann es akzeptiert werden .Verwandte Empfehlungen:
PHP-NutzungDOMDocument
Detaillierte Erläuterung der XML-Betriebsmethoden
PHP XML-OperationsklasseDOMDocument
Lösung für das Problem verstümmelter chinesischer Schriftzeichen beim Speichern von XML in PHPDOMDocument
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie PHP das Parsen und Generieren von XML basierend auf DOMDocument implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!