使用DOM复制(克隆)指定节点名数据到新的XML文件中
[代码][PHP]代码
<?php /* <?xml version="1.0" encoding="utf-8"?> <article> <item> <title name="t1"></title> <content>content1</content> <pubdate>2009-10-11</pubdate> </item> <item> <title name="t2">title2</title> <content>content2</content> <pubdate>2009-11-11</pubdate> </item> </article> */ /* 使用DOM复制(克隆)指定节点名数据到新的XML文件中 ,用到三个类的相关知识点 : DOMDocument - DOMNodeList - DOMNode 1.DOMNodeList DOMDocument::getElementsByTagName ( string $name ) 2.DOMNode DOMNodelist::item ( int $index ) 3.DOMNode DOMNode::cloneNode ([ bool $deep ] ) */ if(!function_exists('l')) { function l() { echo '<br />********************************<br />'; } } if(!function_exists('cp_xml')) { /* * 复制指定节点元素信息到新XML文件中 * @param $dom : 源XML文件的DOM对象 * @param $newdom : 新XML文件的DOM对象 * @param $node: 指定复制的节点元素名 * @param $file: 新生成的XML文件名 * @param $attribute: 指定复制的节点元素的属性名 * @return void */ function cp_xml($dom,$newdom,$node,$file,$attribute = '') { $contents = $dom->getElementsByTagName($node); $clone = array(); $attr = array(); for($i = 0 ; $i<$contents->length; $i++) { $node = $contents->item($i); if($node->hasAttributes() && !empty($attribute)) { $attr[] = $node->getAttribute($attribute); } $clone[] = $node->cloneNode(true); } var_dump($attr); //debug $root = $newdom->createElement('root'); $newdom->appendChild($root); for($i = 0 ; $i<count($clone); $i++) { $title = $newdom->createElement($clone[$i]->nodeName,$clone[$i]->nodeValue); $root->appendChild($title); if(count($attr)>0 && !empty($attribute)) { //创建属性名 $aname = $newdom->createAttribute($attribute); $title->appendChild($aname); //传递属性值 $aval = $newdom->createTextNode($attr[$i]); $aname->appendChild($aval); } } $newdom->save($file); } } if(file_exists("test10_12.xml")) { //实例一 $dom = new DOMDocument(); $newdom = new DOMDocument('1.0','utf-8'); $dom->load("test10_12.xml"); $node = 'content'; $file = '11_1.xml'; cp_xml($dom,$newdom,$node,$file); //实例二 $dom = new DOMDocument(); $newdom = new DOMDocument('1.0','utf-8'); $dom->load("test10_12.xml"); $node = 'title'; $file = '11_2.xml'; cp_xml($dom,$newdom,$node,$file,$attribute = 'name'); } /*End of PHP*/
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
<🎜>:種植花園 - 完整的突變指南
3 週前
By DDD
如何修復KB5055612無法在Windows 10中安裝?
3 週前
By DDD
<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)