0
我想用PHP(SimpleXML)刪除XML節點。用SimpleXML刪除XML節點,PHP
這是我的XML:
<?xml version="1.0"?>
<items>
<a>
<name>A1</name>
<b>
<title>Item1</title>
<url>item1</url>
</b>
<b>
<title>Item2</title>
<url>item2</url>
</b>
<b>
<title>Item3</title>
<url>item3</url>
</b>
</a>
<a>
<name>A2</name>
<b>
<title>Item1</title>
<url>item1</url>
</b>
</a>
</items>
,這是我的PHP代碼:
<?php
$xml = simplexml_load_file($_GET["xml"]);
$sxe = new SimpleXMLElement($xml->asXML());
$ID = $_GET["ID"];
$i = -1;
$num = $_GET["num"];
foreach ($sxe->children() as $var) {
if ($var == $ID) {
foreach ($var->children() as $data) {
if ($data == "link") {
$i++;
if ($i == $num) {
if (! empty($sxe)) {
unset($sxe[0]);
}
}
}
}
}
}
$sxe->asXML($_GET["xml"]);
?>
此代碼看起來與$ ID的數據(例如,$ ID = 「A1」) 。它看起來要刪除的節點是一個節點(用它和),它是#$ num節點。例如:如果$ ID =「A1」和$ num = 1, 它需要刪除標題爲「Item2」和url「item2」的節點。
我在做什麼錯?
謝謝!
是str中的XML文件中的$? (file.xml)或者我應該加載它到$ str? ($ xml = simplexml_load_file($ _ GET [「xml」]); $ str = new SimpleXMLElement($ xml-> asXML());) –
Warning:simplexml_load_string():Entity:line 1:parser error:Start tag expected , '<' 不在deletenode.php發現線72 警告:simplexml_load_string():在links.xml上deletenode.php線72 警告:simplexml_load_string():^在deletenode.php上線72 致命錯誤:調用第73行的deletenode.php中的非對象的成員函數xpath()73 (72是$ sxe = simplexml_load_string($ xml);) –
您可以保存代碼:'$ xml = simplexml_load_file( $ _GET [ 「XML」]); $ sxe = new SimpleXMLElement($ xml-> asXML());' – splash58