PHP native DOM object manipulation XML
For operating XML type files, PHP has a set of built-in DOM objects for processing. XML operations, from creation, addition to modification and deletion, can be performed using functions in the DOM object.
Create
Create a new XML file and write some data to this XML file.
/* * 创建xml文件 */ $info = array( array('obj' => 'power','info' => 'power is shutdown'), array('obj' => 'memcache','info' => 'memcache used than 90%'), array('obj' => 'cpu','info' => 'cpu used than 95%'), array('obj' => 'disk','info' => 'disk is removed') );//用来写入的数据 $dom = new DOMDocument('1.0'); $dom->formatOutput = true;//格式化 $eventList = $dom->createElement('EventList');//创建根节点EventList $dom->appendChild($eventList);//添加根节点 for($i = 0; $i < count($info); $i++){ $event = $dom->createElement('event');//创建节点event $text = $dom->createTextNode('PHP'.$i);//创建文本节点,值为PHP0,PHP1... $event->appendChild($text);//将文本节点添加到节点event,做为节点event的值 $attr_obj = $dom->createAttribute('obj');//创建属性obj $attr_obj->value = $info[$i]['obj'];//为obj属性赋值 $event->appendChild($attr_obj);//将obj属性添加到event节点中,做为event节点的属性 $attr_info = $dom->createAttribute('info'); $attr_info->value = $info[$i]['info']; $event->appendChild($attr_info); $eventList->appendChild($event);//将event节点添加到根节点EventList中 } //echo $dom->saveXML(); $dom->save('./t.xml');//保存信息到当前目录下的t.xml文件中
The above code snippet can create an XML file and add some information to this file, including values and attributes. The final file is t.xml in the current directory. You can take a look at its contents. .
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown">PHP0</event> <event obj="memcache" info="memcache used than 90%">PHP1</event> <event obj="cpu" info="cpu used than 95%">PHP2</event> <event obj="disk" info="disk is removed">PHP3</event> </EventList>
Read XML information & add new attributes
The t.xml file created in the previous section is the operation object, and the t.xml is read out The information in the file and adds a new attribute count with a value of 1 to the node.
/* * 读取xml文件信息,并添加新的属性 */ $dom = new DOMDocument('1.0'); $dom->load('./t.xml');//加载要操作的文件 $list = $dom->getElementsByTagName('event');//获取event节点列表 foreach($list as $item){ $attr_obj = $item->getAttribute('obj');//获取属性obj的值 $attr_info = $item->getAttribute('info'); echo "<pre class="brush:php;toolbar:false">Object:$attr_obj;Info:$attr_info;Value:{$item->nodeValue}"; $item->setAttribute('count',1);//添加新的属性count=1 } $dom->save('./t.xml');//保存修改
Look at the extracted value:
Object:power;Info:power is shutdown;Value:PHP0 Object:memcache;Info:memcache used than 90%;Value:PHP1 Object:cpu;Info:cpu used than 95%;Value:PHP2 Object:disk;Info:disk is removed;Value:PHP3
Look at the content of the current t.xml file again, the count attribute has been added.
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown" count="1">PHP0</event> <event obj="memcache" info="memcache used than 90%" count="1">PHP1</event> <event obj="cpu" info="cpu used than 95%" count="1">PHP2</event> <event obj="disk" info="disk is removed" count="1">PHP3</event> </EventList>
Modify node attributes & node values
The t.xml file in the above section is the operation object. Modify the count value of the node whose obj attribute is cpu. The new value is count+ 1.
/* * 修改某一个节点的属性和值 */ $dom = new DOMDocument('1.0'); $dom->load('./t.xml'); $list = $dom->getElementsByTagName('event'); foreach($list as $item){ $attr_obj = $item->getAttribute('obj'); if($attr_obj == 'cpu'){//修改cpu的count属性,使其值+1 $attr_count = $item->getAttribute('count');//获取count属性的值 $item->setAttribute('count',$attr_count+1);//重置count属性的值 $item->nodeValue = 'Hello,Kitty';//重置节点的值 } } $dom->save('./t.xml');
The t.xml file after the operation is as follows. You can see that the count attribute of the node with obj=cpu has been changed and the value has been modified successfully.
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown" count="1">PHP0</event> <event obj="memcache" info="memcache used than 90%" count="1">PHP1</event> <event obj="cpu" info="cpu used than 95%" count="2">Hello,Kitty</event> <event obj="disk" info="disk is removed" count="1">PHP3</event> </EventList>
Delete node
If you want to add it, it will be deleted. The t.xml file in the above section is used as the operation object, and the node with obj=disk is deleted.
/* * 删除节点 */ $dom = new DOMDocument('1.0'); $dom->load('./t.xml'); $list = $dom->getElementsByTagName('event'); foreach($list as $item){ if($item->getAttribute('obj') == 'disk'){//以obj=disk的节点为操作对象 $item->parentNode->removeChild($item);//删除节点 } } $dom->save('./t.xml');
Look at the contents of the t.xml file after the operation. The node with obj=disk has been successfully deleted.
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown" count="1">PHP0</event> <event obj="memcache" info="memcache used than 90%" count="1">PHP1</event> <event obj="cpu" info="cpu used than 95%" count="2">Hello,Kitty</event> </EventList>
Add a new child node to the root node
The t.xml in the previous section is the operation object, add a new child node to the root node EventList child nodes.
/* * 向EventList中添加一个子节点 */ $dom = new DOMDocument('1.0'); $dom->load('./t.xml'); $event_list = $dom->getElementsByTagName('EventList');//获取根节点 $event = $dom->createElement('event','lenovo');//新建节点 $event_list->item(0)->appendChild($event);//将新建节点添加到根节点中 $event_attr_obj = $dom->createAttribute('obj'); $event_attr_obj->value = 'lenovo'; $event->appendChild($event_attr_obj); $event_attr_info = $dom->createAttribute('info'); $event_attr_info->value = 'thinkpad t430'; $event->appendChild($event_attr_info); $dom->save('./t.xml');
Look at the contents of the t.xml file after the operation. The new child node has been inserted into the root node.
<?xml version="1.0"?> <EventList> <event obj="power" info="power is shutdown" count="1">PHP0</event> <event obj="memcache" info="memcache used than 90%" count="1">PHP1</event> <event obj="cpu" info="cpu used than 95%" count="2">Hello,Kitty</event> <event obj="lenovo" info="thinkpad t430">lenovo</event></EventList>
About item($index)
item(index) is a method in the DOMNodeList class. Its function is to return a node specified by the index. The getElementsByTagName(name) method in the DOMDocument class returns an instance of a DOMNodeList object, so the item(index) method can be called directly. Taking the t.xml in the above section as an example, if e=dom−>getElementsByTagName('EventList') gets the information of the EventList node, because the EventList node is the root node and there is only one, so when it calls item(index), The index is only available with index=0, because it only has 1; and if e=dom−>getElementsByTagName('event') gets the information of the event node, because there are 4 events, when it calls item(index), the index $ index={0,1,2,3}, there are 4 values to choose from. Each node contains multiple attributes, which can be expressed in the form of an array of key-value pairs, as shown below:
object(DOMElement)#3 (18) { ["tagName"]=> string(5) "event" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(5) "event" ["nodeValue"]=> string(11) "Hello,Kitty" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> string(22) "(object value omitted)" ["nextSibling"]=> string(22) "(object value omitted)" ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(5) "event" ["baseURI"]=> string(36) "file:/H:/xampp/htdocs/demo/xml/t.xml" ["textContent"]=> string(11) "Hello,Kitty" }
can also be used as attributes of an object, such as getting the value of this node:
/* * 关于item() */ $dom = new DOMDocument('1.0'); $dom->load('./t.xml'); $e = $dom->getElementsByTagName('event'); echo $e->item(2)->nodeValue; //var_dump($e->item(2)); // $e = $dom->getElementsByTagName('EventList'); // var_dump($e->item(0)); //var_dump($e->item(0)->baseURI); // for($i=0;$i<$e->length;$i++){ // echo $e->item($i)->nodeValue; // }
The above is the content of PHP native DOM object operation XML. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

PHP and Python each have their own advantages and are suitable for different scenarios. 1.PHP is suitable for web development and provides built-in web servers and rich function libraries. 2. Python is suitable for data science and machine learning, with concise syntax and a powerful standard library. When choosing, it should be decided based on project requirements.

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.
