PHP XML 在节点之间复制元素

发布于 2024-12-03 05:41:24 字数 1360 浏览 0 评论 0原文

要制作 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>

To make a backup copy of XML nodes, I must copy all the node elements to a new node. I have this code to do the copying.

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); 

}

This code retrieves the id for the URL node to be copied, but doesn't retrieve the NAME or URLC.
What is the right way to get that information?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮生未歇 2024-12-10 05:41:24

这里的NodeValue应该是小写的nodeValue,试试这个

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

The NodeValue here should be lower case nodeValue, try this instead

  $name = $url->getElementsByTagName ("NAME")->item(0)->nodeValue
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文