Cara menukar nilai nod xml dalam PHP: 1. Baca data dari pangkalan data 2. Tulis fail xml 3. Buat objek DOMDocument dan muatkan fail xml; nod anak di bawah nod yang ditentukan Itu sahaja.
Persekitaran pengendalian artikel ini: sistem Windows 7, versi PHP7.1, komputer Dell G3
Cara menukar nilai nod xml dalam php?
php mengubah suai nilai nod xml
Fungsi yang baru saya laksanakan hari ini, saya dapati banyak maklumat, saya pada asalnya ingin menggunakan xpath, tetapi saya tidak tahu banyak tentang xpath. Selepas berkeliling dalam bulatan besar, saya memutuskan untuk menggunakan DOMDocument.
Buat tanda di sini supaya anda tidak perlu bekerja keras untuk mencari maklumat pada masa hadapan.
Mula-mula baca data daripada pangkalan data dan kemudian tulis fail xml. Format fail xml adalah seperti berikut.
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>
Memproses dalam fail php.
$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'] dan $_GET['content'] ialah parameter yang diluluskan oleh ajax.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menukar nilai nod xml dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!