Home  >  Article  >  Backend Development  >  DOM basics and how to read xml content in php_PHP tutorial

DOM basics and how to read xml content in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:09:10856browse

DOM basics and how to use PHP to read xml content

DOM (Document Object Model): Document Object Model. The core idea is: treat the xml file as an object model, and then operate the xml file through objects.

PHP performs addition, deletion, modification and query (curd) operations on xml documents. The specific analysis is as follows:

xml document: class.xml

The code is as follows:




Xiao Qiao
Female
20


Zhou Yu
Male
25


DOM tree structure diagram corresponding to class.xml

DOM基础及php读取xml内容操作的方法 帮客之家

php file (operating on xml document)

Query operation cases:

The code is as follows:

//1. Create a DOMDocument object. This object represents the xml file
$xmldoc = new DOMDocument();
//2. Load the xml file (specify which xml file to parse, then the dom tree node will be loaded into the memory)
$xmldoc->load("class.xml");
//3. Goal: Get the first student’s name
//3.1 The first step is to read all students
$students = $xmldoc->getElementsByTagName("student");//Method getElementsByTagName: Find the corresponding node according to the given node name (here, student), and return an object of DOMNodeList type, which is equivalent to taking out all students. You can use var_dump($students) to view it, and search the manual based on the return value to see the properties and methods below.
echo "There are ".$students->length." students
";

//3.2 Read the first student
$stu1 = $students->item(0);//Read the first student. The return value is a DOMElement object. Directly echo $stu1->nodeValue; will output name, sex, and age.
//3.3 Get the first student’s name
$stu1_name = $stu1->getElementsByTagName("name");
//3.4 Read the name
echo $stu1_name->item(0)->nodeValue;
?>

Note:

(1) Encoding problem;
(2) This is just a basic demonstration, which is quite troublesome. Loops and functions will be used later;
(3) Use var_dump() to check the return value of the variable, and then use the return value to find the attributes and methods under the return value in the manual.
(4) After the entire sequence, getElementByTagName() does not need to read layer by layer. In fact, it can directly read the node name without reading the student first (of course, if there are multiple students under the same student name, there will be a problem, and you need to learn new knowledge points here (xpath).

So the above code can be simply changed to:

The code is as follows:

//1. Create a DOMDocument object. This object represents the xml file
$xmldoc = new DOMDocument();
//2. Load the xml file (specify which xml file to parse, then the dom tree node will be loaded into the memory)
$xmldoc->load("class.xml");
//3. Goal: Get the first student’s name
$stu = $xmldoc->getElementsByTagName("name");//Directly find the node name
$stu1 = $stu->item(0);//When item(1), you can get Zhou Yu
echo $stu1->nodeValue;
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/947790.htmlTechArticleDOM basics and the method of php reading xml content operation DOM (Document Object Model): Document Object Model. The core idea is: treat the xml file as an object model, and then use the object's...
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