php method to change the value of an xml node: 1. Read data from the database; 2. Write an xml file; 3. Create a DOMDocument object and load the xml file; 4. Modify the value of the child node under the specified node That’s it.
The operating environment of this article: Windows7 system, PHP7.1 version, Dell G3 computer
How to change the xml node value in php?
php modifies the value of xml node
The function I just implemented today, I found a lot of information, I originally wanted to use xpath, but I don’t know much about xpath. After going around in a big circle, I decided to use DOMDocument.
Make a mark here so you don’t have to work too hard to find information in the future.
First read the data from the database and then write an xml file. The xml file format is as follows.
mainchart.xml
<?xml version="1.0" encoding="utf-8"?> <records> <record> <pono>5008171</pono> <status>3</status> <opentime>2010.06.13 14:19</opentime> <closetime>2010.06.16 14:19</closetime> <potype>balance</potype> <variety/> <margin/> <openprice/> <closeprice/> <zhisun/> <zhiying/> <lowest/> <highest/> <netvalue/> <openamount/> <openinterest/> <amount/> <point/> <positiontime>3</positiontime> <memo>TRMM-DP(123005)-D</memo> </record> <record> <pono>5011083</pono> <status>3</status> <opentime>2010.06.15 16:15</opentime> <closetime>2010.06.15 16:23</closetime> <potype>buy</potype> <variety>eurusd</variety> <margin/> <openprice>1.31822</openprice> <closeprice>1.31655</closeprice> <zhisun>0</zhisun> <zhiying>0</zhiying> <lowest/> <highest/> <netvalue/> <openamount/> <openinterest/> <amount/> <point/> <positiontime>00:08:00</positiontime> <memo>aaafff</memo> </record> <record> <pono>5011913</pono> <status>3</status> <opentime>2010.06.15 16:51</opentime> <closetime>2010.06.15 17:19</closetime> <potype>sell</potype> <variety>eurusd</variety> <margin/> <openprice>1.31819</openprice> <closeprice>1.31809</closeprice> <zhisun>0</zhisun> <zhiying>0</zhiying> <lowest/> <highest/> <netvalue/> <openamount/> <openinterest/> <amount/> <point/> <positiontime>00:28:00</positiontime> <memo>eee</memo> </record> </records>
Processing in php file.
$file ="mainchart.xml"; //创建DOMDocument的对象 $dom=new DOMDocument('1.0'); //载入mainchart.xml文件 $dom->load($file); //获得record节点的集合 $records = $dom->getElementsByTagName('record'); //遍历record节点的集合 foreach($records as $record){ //如果record节点的pono子节点的值满足条件,就修改该record节点下memo子节点的值 if($record->getElementsByTagName('pono')->item(0)->nodeValue == $_GET['id']){ $record->getElementsByTagName('memo')->item(0)->nodeValue = $_GET['content']; } } $dom->save('mainchart.xml');
$_GET['id'] and $_GET['content'] are parameters passed by ajax.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to change xml node value in php. For more information, please follow other related articles on the PHP Chinese website!