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 相关文章推荐
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
js中根据字数截取字符串,不能截断url
Jan 12 Javascript
js调试系列 源码定位与调试[基础篇]
Jun 18 Javascript
jQuery中:radio选择器用法实例
Jan 03 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
jQuery编写设置和获取颜色的插件
Jan 09 Javascript
详谈js模块化规范
Jul 07 Javascript
webpack 2的react开发配置实例代码
Jul 28 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
微信小程序实现写入读取缓存详解
Aug 30 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 pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python实现二维数组输出为图片
2018/04/03 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
查看python下OpenCV版本的方法
2018/08/03 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Python页面加载的等待方式总结
2021/02/28 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
护士演讲稿范文
2014/01/05 职场文书
社区安全检查制度
2014/02/03 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript