Home > Article > Backend Development > PHP realizes the method of operating xml based on XMLWriter
This article mainly introduces PHP's method of operating XML based on XMLWriter. It 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 it
Follow yesterday's article Let's learn a way to read and write XML this time, 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. Parse 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 way of parsing xml is more efficient. If you don’t understand something, it is recommended to consult 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 result of the analysis
Related recommendations:
Detailed introduction Sample code for using XmlWriter to write
#printwriter php XMLWriter Simple example code for class RSS output
The above is the detailed content of PHP realizes the method of operating xml based on XMLWriter. For more information, please follow other related articles on the PHP Chinese website!