Home  >  Article  >  Backend Development  >  Detailed explanation of how PHP uses DOM and simplexml to read xml documents

Detailed explanation of how PHP uses DOM and simplexml to read xml documents

墨辰丷
墨辰丷Original
2018-05-25 17:13:061469browse

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(&#39;Content-type:text/html;charset=utf-8&#39;);
$arr=array();
$dom = new DOMDocument();//创建DOM对象
$dom->load(&#39;./books.xml&#39;);//载入xml文档
print_r($dom);
echo &#39;<hr>&#39;;
$dom = $dom->getElementsByTagName(&#39;book&#39;);//截取标签
for($i=0;$i<$dom->length;$i++){
 if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText==&#39;金庸&#39;){
  $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.&#39;<br />&#39;;//获取内容
 }
}
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(&#39;./books.xml&#39;);
$t = $simxml->book;
$arr=array();
foreach ($t as $v){
 if($v->author==&#39;金庸&#39;){
  $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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn