js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码


Posted in Javascript onJuly 27, 2011
<?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); 
$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'); 
} 
?>
Javascript 相关文章推荐
Javascript注入技巧
Jun 22 Javascript
浅析XMLHttpRequest的缓存问题
Dec 13 Javascript
js日期、星座的级联显示代码
Jan 23 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
Feb 24 Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 Javascript
BootStrapValidator校验方式
Dec 19 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
Mar 13 Javascript
jQuery中table数据的值拷贝和拆分
Mar 19 Javascript
教你用Cordova打包Vue项目的方法
Oct 17 Javascript
js实现动态增加文件域表单功能
Oct 22 Javascript
vue-router的钩子函数用法实例分析
Oct 26 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 Javascript
另一个javascript小测验(代码集合)
Jul 27 #Javascript
jsTree 基于JQuery的排序节点 Bug
Jul 26 #Javascript
Jquery中显示隐藏的实现代码分析
Jul 26 #Javascript
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
Jul 26 #Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
Jul 26 #Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
Jul 26 #Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
Jul 26 #Javascript
You might like
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php跨服务器访问方法小结
2015/05/12 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python进程间通信Queue实例解析
2018/01/25 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
网络教育自我鉴定
2014/02/04 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python