0
PHP (SimpleXML)로 XML 노드를 삭제하려고합니다. SimpleXML, PHP로 XML 노드 삭제
이
내 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, 는 제목 "항목 2"및 URL "항목 2"로 노드를 삭제해야하는 경우.
내가 뭘 잘못하고 있니?
감사합니다.
XML 파일 인수 str $가 XML을 변경
DomDocument
방법removeChild
를 사용할 것인가? (file.xml) 또는 $ str에로드해야합니까? ($ XML = simplexml_load_file은 ($는 _ [ "XML"]) GET, 는 $ str을 = 새로운 SimpleXMLElement는 ($ XML-> asXML은());) –은 경고 :() simplexml_load_string : 법인 : 라인 1 : 파서 오류 : 시작 태그 예상 '<'라인 deletenode.php 72 경고없는 :) (simplexml_load_string : 라인 72에서 deletenode.php links.xml 경고 : simplexml_load_string()^deletenode.php 72 치명적인 행 오류 : 72 행의 deleteenode.php에있는 비 객체의 멤버 함수 xpath()를 호출하십시오. –
코드를 저장할 수 있습니다 :'$ xml = simplexml_load_file ($ xx = simplexml_load_string ($ xml) $ _GET [ "xml"]); $의 SXE = 새로운 SimpleXMLElement ($ XML-> asXML());' – splash58