Dieser Artikel stellt hauptsächlich die Methode vor, mit der PHP DOM und SimplexML zum Lesen von XML-Dokumenten verwendet. Er analysiert die zugehörigen Betriebsfähigkeiten von PHP zum Erstellen, Laden und Lesen von XML-Dateien in Form von Beispielen Sie können sich auf Folgendes beziehen:
Das Beispiel in diesem Artikel beschreibt, wie PHP DOM und Simplexml zum Lesen von XML-Dokumenten verwendet. Teilen Sie es wie folgt mit allen als Referenz:
Beispiel Verwenden Sie DOM, um die Titel aller Jin Yong-Romane im folgenden XML-Dokument abzurufen. Der Speicherort des XML-Dokuments ist ./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>
Verwenden Sie DOM-Code zur Implementierung:
Schritte zum Lesen von XML-Dokumenten im DOM: 1. Erstellen Sie ein DOM-Objekt—— 》2. DOM-Dokumentinhalt laden——》3. Fangen Sie das Tag ab, an dem sich der zu lesende Inhalt befindet——holen Sie sich den zu lesenden Inhalt.
header('Content-type:text/html;charset=utf-8'); $arr=array(); $dom = new DOMDocument();//创建DOM对象 $dom->load('./books.xml');//载入xml文档 print_r($dom); echo '<hr>'; $dom = $dom->getElementsByTagName('book');//截取标签 for($i=0;$i<$dom->length;$i++){ if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText=='金庸'){ $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.'<br />';//获取内容 } } print_r($arr);
Was nach der Verwendung von getElementsByTagName und childNodes zurückgegeben wird, sind Objekte, daher müssen sie anschließend item(int) verwenden, auch wenn die von ihnen zurückgegebenen Objekte nur enthalten Mit item(0) muss auch ein Item angegeben werden, sonst kommt es zu einem Fehler.
Verwenden Sie Simplexml-Code zur Implementierung:
$simxml = simplexml_load_file('./books.xml'); $t = $simxml->book; $arr=array(); foreach ($t as $v){ if($v->author=='金庸'){ $arr[] = (string)$v->title; } } print_r($arr);
Nach der Verwendung von simplexml_load_file wird das Objekt zurückgegeben verfügt sowohl über Objekte als auch über Arrays. Unabhängig davon, ob es sich um ein Objekt oder ein Array handelt, können Sie foreach verwenden, um den Inhalt zu durchlaufen. Der letzte von dieser Instanz erhaltene Inhalt, $v->title, ist tatsächlich ein Objekt und muss daher mithilfe von string in eine Zeichenfolge konvertiert werden.
Weitere Beispiele dafür, wie PHP DOM und Simplexml zum Lesen von XML-Dokumenten verwendet, finden Sie auf der chinesischen PHP-Website!