Home >Backend Development >PHP Tutorial >How to operate xml with PHP
This article mainly introduces the method of PHP operating xml based on XMLWriter, and analyzes the operating skills of PHP using XMLWriter to generate and parse xml data in the form of examples. Friends in need can refer to the following
The examples in this article describe PHP is based on XMLWriter's method of operating xml. Share it with everyone for your reference, the details are as follows:
Following yesterday's lesson, let's learn a way to read and write XML, which mainly revolves around XMLWriter and XMLReader. The former is used to generate xml, and the latter is used to read and parse xml. Without further ado, let’s take a look
1. Generate xml file or string
<?php header("Content-type: text/html; charset=utf-8"); $xml=new XMLWriter(); //$xml->openUri("php://output"); //设置输出,如果不需要保存成文件则使用上面被注释掉那句 $xml->openUri("stu2.xml"); //设置缩进字符串,这里设置为空串(这句和下面的setIntent也可以不要) $xml->setIndentString(''); $xml->setIndent(true); //xml文档开始 $xml->startDocument('1.0', 'utf-8'); //创建根节点 $xml->startElement("StudentInfo"); $xml->startElement("Item"); //添加属性 $xml->writeAttribute("type","1"); $xml->startElement("id"); $xml->text("01"); $xml->endElement(); $xml->startElement("name"); $xml->text("刘惜君"); $xml->endElement(); $xml->endElement(); $xml->endElement(); $xml->endDocument(); //header("Content-type: text/xml"); //取得缓冲区里的xml字符串 //echo $xml->outputMemory(); ?>
The characteristic of this method is that an endElement is required after each tag ends, and the document needs to be ended after the xml is spliced. There is a feeling of "layers of wrapping"
2. Parsing xml
<?php header("Content-type: text/html; charset=utf-8"); $xml=new XMLReader(); //载入xml文件,如果是字符串直接使用xml方法 $xml->open("student.xml"); //开始读取xml while($xml->read()){ //根据节点类型和元素名称取得文本节点或属性 if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') { print $xml->getAttribute("id") . "</br>"; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') { //移动指针到下一个节点 $xml->read(); //取得文本节点的值 print $xml->value."</br>"; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') { $xml->read(); print $xml->value."</br>"; } } ?>
This kind of parsing The xml method is more efficient. If you don’t understand something, it is recommended to check the PHP development manual
The content of the parsed file is as follows
<?xml version="1.0" encoding="utf-8"?> <UsersInfo><item id="01"><name>冯绍峰</name><age>30</age></item><item id="02"><name>潘玮柏</name><age>29</age></item></UsersInfo>
The following is the analysis Outcomes
Related recommendations:
How to implement php to parse xml and generate sql statements
PHP parsing xml format data tool class example sharing
Detailed explanation of PHP's addition, deletion and modification of xml files
The above is the detailed content of How to operate xml with PHP. For more information, please follow other related articles on the PHP Chinese website!