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