PHP XML在节点之间复制元素

时间:2011-09-04 00:09:35

标签: php xml dom

要制作XML节点的备份副本,我必须将所有节点元素复制到新节点。我有这个代码来进行复制。

foreach($xurll as $url)
{ 
  $urlid = $url->getAttribute('ID');
  $xurl = $dom->createElement("URL");
  $xurl->setAttribute("ID", $urlid);
  $xurlb->appendChild($xurl);

  $name = $url->getElementsByTagName ("NAME")->item(0)->NodeValue;
  $xuname     = $dom->createElement("NAME");
  $xunameText = $dom->createTextNode($name);
  $xuname->appendChild($xunameText);
  $xurl->appendChild($xuname);

  $urllink = $url->getElementsByTagName ("URLC")->item(0)->NodeValue;
  $xulink     = $dom->createElement("URLC");
  $xulinkText = $dom->createTextNode($urllink);  
  $xulink->appendChild($xulinkText); 
  $xurl->appendChild($xulink); 

}

此代码检索要复制的URL节点的ID,但不检索NAME或URLC。 获取该信息的正确方法是什么?

<?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>

1 个答案:

答案 0 :(得分:1)

NodeValue此处应为小写nodeValue,请尝试使用

  $name = $url->getElementsByTagName ("NAME")->item(0)->nodeValue