我有這個PHP代碼,它將一組節點添加到XML文件中。它完成了它應該做的大部分工作,它找到了添加的位置,但是沒有進行更新。XML更新PHP中的一組節點
我有這種結構的xml文件。
<COMMUNITIES>
<COMMUNITY ID="c001">
<URLS>
<URL ID="u001">
<NAME>Google.com</NAME>
<URL>http://www.google.com</URL>
</URL>
</URLS>
</COMMUNITY>
</COMMUNITIES>
正在對URLS節點進行更新。用戶點擊「添加URL」鏈接,然後像這樣將新的URL添加到此節點。
<URL ID="u002">
<NAME>Yahoo.com</NAME>
<URL>http://www.yahoo.com</URL>
</URL>
如果URLS節點存在,我追加新的url節點。如果URLS節點不存在,我創建它,然後附加新的url節點。
沒有錯誤,似乎一切正常,但URLS節點是空的。這是PHP腳本。
function add_url($nodeid, $urlid, $urlname, $urllink) {
$dom = new DOMDocument();
$dom->load('communities.xml');
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
// get document element
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//COMMUNITY[@ID='$nodeid']");
if ($nodes->length) {
$node = $nodes->item(0);
$xurl = $dom->createElement("URL");
$xurl->setAttribute("ID", $urlid);
$xuname = $dom->createElement("NAME");
$xunameText = $dom->createTextNode(mysql_escape_mimic($urlname));
$xuname->appendChild($xunameText);
$xulink = $dom->createElement("URL");
$xulinkText = $dom->createTextNode(mysql_escape_mimic($urllink));
$xulink->appendChild($xulinkText);
$xurl->appendChild($xuname);
$xurl->appendChild($xulink);
$xurls = $xpath->query("//COMMUNITY[@ID='$nodeid']/URLS");
if ($xurls->length) {
}
else {
$xurls = $dom->createElement("URLS");
}
$xurls->appendChild($xurl);
/* $node->appendChild($xurls); */
}
$dom->save('communities.xml');
}
我認爲問題在於我在追加URLS節點時已經存在。但是我注意到了這一點。我相信問題很簡單,但我是新手。我在網站上看了一下,沒有找到具體的情況。
編輯
刪除return語句
if ($xurls->length)
之前。固定功能。
我添加了return語句來調試腳本。我刪除了它,並且不添加URL。 – user823527
這個腳本有什麼問題? – user823527
希望我可以幫忙,但我剛剛結束了它,老實說,我不知道。我真的從來沒有使用過PHP的DOM函數,所以我有點失落...... – DaveRandom