[請益] 如何搜尋XML並依照條件刪除整個child?

看板PHP作者 (呣伊噢)時間17年前 (2008/11/18 03:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
(原始 XML 檔案 "data.xml") |<?xml version="1.0" encoding="utf-8"?> |<album> | <img src="pic1.jpg" width="100" height="100"/> | <img src="pic2.jpg" width="100" height="100"/> | <img src="pic3.jpg" width="100" height="100"/> |</album> 請問要怎麼用利用 php 讀取 "data.xml", 找出 <img> 裡 attribute "src" 包含字串 "pic2.jpg", 並且將這整行刪除並儲存,使得 XML 檔案結果為: (修改過的 XML 檔案 "data.xml") |<?xml version="1.0" encoding="utf-8"?> |<album> | <img src="pic1.jpg" width="100" height="100"/> | <img src="pic3.jpg" width="100" height="100"/> |</album> 我目前使用了三種方式,都失敗,不知道問題在哪,請高手指點指點 <法一> |$xdoc=simplexml_load_file("data.xml"); |foreach($xdoc->img as $ximg) { | if($ximg['src'] == "pic2.jpg") { | $dom=dom_import_simplexml($ximg); | $dom->parentNode->removeChild($dom); | } |} <法二> |$imgfile = new DomDocument(); |$imgfile->load("data.xml"); |$simgfile = simplexml_load_file("data.xml"); |$count = 0; |foreach($simgfile->img as $src) { | if ($src['src'] == $img) { | $imgfile->documentElement->removeChild($imgfile-> |(太長換行原本跟上行連在一起) documentElement->childNodes->item($count)); | $count--; | } | $count++; |} |$imgfile->saveXML(); <法三> |$xdoc = new DOMDocument; |$xdoc->load('data.xml'); |$xgallery = $xdoc->documentElement; |$imgsrc = $xgallery->getElementsByTagName('img')->item(0); |if($imgsrc->hasAttribute('src') == $img) { | $delimg = $xgallery->removeChild($imgsrc); | $xdoc->saveXML(); |} -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.143.220.20 ※ 編輯: mmeow 來自: 220.143.220.20 (11/18 03:13) ※ 編輯: mmeow 來自: 220.143.219.9 (11/18 13:21)
文章代碼(AID): #198S7NOA (PHP)
文章代碼(AID): #198S7NOA (PHP)