Home >Backend Development >PHP Tutorial >How to use php to parse xml files_PHP tutorial
DOMElement
DOMElement DOMDocument::createElement ( string $name [, string $value ] )
Create node element
String $name:Node name
String $value: The value of the node
8. Add node
•DOMNode DOMNode::appendChild ( DOMNode $newnode )
Add child node
DOMNode $newnode: new node
In DOM operations, addition, deletion and modification operations must depend on the parent node
9. Save
•string DOMDocument::saveXML
Save to a string
•int DOMDocument::save ( string $filename )
Save to a file
String $filename:File name
10. Delete node
•DOMNode DOMNode::removeChild ( DOMNode $oldnode )
Delete node
DOMNode $oldnode: The node to be deleted
11. Update node
•DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
DOMNode $newnode: new node
DOMNode $oldnode: original node
12. Add attributes
•DOMAttr DOMElement::setAttribute( string $name , string $value )
String $name: attribute name
String $value: attribute value
13. Modify attributes
DOMAttr DOMElement::setAttribute( string $name, string $value)
String $name: attribute name
String $value: attribute value
14. Delete attributes
•bool DOMElement::removeAttribute ( string $name )
String $name: The name of the attribute to be deleted
15. Get attributes
•string DOMElement::getAttribute ( string $name )
String $name: The attribute name of the attribute value to be obtained
DOMDocument is also part of the DOM extension launched after PHP5. It can be used to create or parse html/xml. Currently, it only supports utf-8 encoding.
The code is as follows | |
$xmlstring = << $dom = new DOMDocument(); function getArray($node) { if ($node->hasAttributes()) { if ($node->hasChildNodes()) { |
SimpleXML
SimpleXML is a set of simple and easy-to-use XML tools provided after PHP5. It can convert XML into objects that are convenient for processing, and can also organize and generate XML data. However, it does not apply to xml containing namespace, and the xml must be well-formed. It provides three methods: simplexml_import_dom, simplexml_load_file, simplexml_load_string. The function name intuitively explains the function. All three functions return SimpleXMLElement objects, and data is read/added through SimpleXMLElement operations
The code is as follows | |||||
$xml = simplexml_load_string($string); |
The advantage of SimpleXML is that it is simple to develop. The disadvantage is that it loads the entire xml into the memory before processing, so it may not be able to parse an xml document with a lot of content. If you are reading small files and the xml does not contain namespace, then SimpleXML is a good choice.
XMLReader
XMLReader is also an extension after PHP5 (installed by default after 5.1). It moves in the document flow like a cursor and stops at each node. It is very flexible to operate. It provides fast and non-cached streaming access to input, and can read a stream or document, allowing the user to extract data from it, and skip records that are not meaningful to the application.
Let’s use an example of using Google Weather API to obtain information to demonstrate the use of XMLReader. Only a small number of functions are involved here. For more information, please refer to the official documentation.
The code is as follows | |
$xml_uri = 'http://www.google.com/ig/api?weather=Beijing&hl=zh-cn'; $reader = new XMLReader(); //get forecast data |
XMLReader is similar to XML Parser, both operate while reading. The big difference is that the SAX model is a "push" model, in which the analyzer pushes events to the application and notifies the application each time a new node is read. program, and the application using XmlReader can extract nodes from the reader at will, with better controllability.
Since XMLReader is based on libxml, you should refer to the documentation for some functions to see if they are applicable to your libxml version.