Home > Article > Backend Development > Detailed explanation of how PHP uses DOM and simplexml to read xml documents
This article mainly introduces the method of PHP using DOM and simplexml to read xml documents. It analyzes the related operation skills of PHP using DOM and simplexml to create, load and read xml files in the form of examples. Friends in need You can refer to the following example
This article describes how PHP uses DOM and simplexml to read xml documents. Share it with everyone for your reference, the details are as follows:
Example Use DOM to obtain the titles of all Jin Yong's novels in the following xml document. The location of the xml document is ./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>
Use DOM code to implement:
DOM reading xml document steps: 1. Create a DOM object——》2. Load the DOM document Content——》3. Intercept the tag where the content to be read is located——》Get the content to be read.
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);
What is returned after using getElementsByTagName and childNodes are objects, so they must use item(int) afterwards, even if the objects they return only contain one item , must also be specified with item(0), otherwise an error will occur.
Use simplexml code to implement:
$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);
After using simplexml_load_file, the object is returned, and the items in the object are both There are objects and arrays. Whether it is an object or an array, you can use foreach to loop through the contents. The last content obtained by this instance, $v->title, is actually an object, so it needs to be converted into a string using string.
The above is the entire content of this article, I hope it will be helpful to everyone's study.
Related recommendations:
PHP implements the method of generating and parsing xml based on SimpleXML
PHP xml parsing and generation introduction to the use of SimpleXML
php SimpleXML() function usage detailed explanation
The above is the detailed content of Detailed explanation of how PHP uses DOM and simplexml to read xml documents. For more information, please follow other related articles on the PHP Chinese website!