1
이 php 함수에서 루프에 ajax 통해 해당 함수를 호출하여 노드에 추가합니다. appenchild 호출이 성공한 첫 번째 시간입니다. 두 번째로 "정의되지 않은 메소드 호출"이라는 PHP 오류가 발생했습니다. 나는 이것이 왜 일어나는 지 이해하지 못한다. 여기 XML 노드 추가 자식 루프에서 호출
여기 PHP 함수<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
function mysql_escape_mimic($inp) {
if(is_array($inp))
return array_map(__METHOD__, $inp);
if(!empty($inp) && is_string($inp)) {
return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $inp);
}
return $inp;
}
function add_url($nodeid, $urlid, $urlname, $urllink) {
$dom = new DOMDocument();
$dom->load('communities.xml');
$dom->formatOutput = true;
$dom->preserveWhiteSpace = true;
// get document element
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//COMMUNITY[@ID='$nodeid']");
if ($nodes->length) {
$node = $nodes->item(0);
$xurls = $xpath->query("//COMMUNITY[@ID='$nodeid']/URLS");
if ($xurls->length) {
}
else {
$xurls = $dom->createElement("URLS");
$node->appendChild($xurls);
}
$xurl = $dom->createElement("URL");
$xurl->setAttribute("ID", $urlid);
$xurls->appendChild($xurl); /* Function fails here second time, when node exists already */
$xuname = $dom->createElement("NAME");
$xunameText = $dom->createTextNode(mysql_escape_mimic($urlname));
$xuname->appendChild($xunameText);
$xurl->appendChild($xuname);
$xulink = $dom->createElement("URLC");
$xulinkText = $dom->createTextNode(mysql_escape_mimic($urllink));
$xulink->appendChild($xulinkText);
$xurl->appendChild($xulink);
}
echo "from add_url urlid: ".$urlid." urlname ".$urlname." urllink ".$urllink;
$dom->save('communities.xml');
}
echo add_url(trim($_REQUEST['nodeid']), trim($_REQUEST['urlid']), trim($_REQUEST['urlname']), trim($_REQUEST['urllink']));
?>
되는 XML 구조이다.
<?xml version="1.0" encoding="ISO-8859-1"?>
<COMMUNITIES>
<COMMUNITY ID="c000002">
<NAME>ID000002</NAME>
<TOP>192</TOP>
<LEFT>297</LEFT>
<WIDTH>150</WIDTH>
<HEIGHT>150</HEIGHT>
<URLS>
<URL ID="u000002">
<NAME>Facebook.com</NAME>
<URLC>http://www.facebook.com</URLC>
</URL>
</URLS>
</COMMUNITY>
</COMMUNITIES>
감사합니다. 이 지금 작동합니다. – user823527