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自动完成插件(autocomplete)应用之PHP版
Dec 15 Javascript
JS实现静止元素自动移动示例
Apr 14 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
js中string和number类型互转换技巧(分享)
Nov 28 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
Node.js+jade抓取博客所有文章生成静态html文件的实例
Sep 19 Javascript
浅析Vue 和微信小程序的区别、比较
Aug 03 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
Aug 20 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
Jul 31 Javascript
关于在LayUI中使用AJAX提交巨坑记录
Oct 25 Javascript
JavaScript实现省份城市的三级联动
Feb 11 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
设定php简写功能的方法
2019/11/28 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
jquery tools 系列 scrollable学习
2009/09/06 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
python排序方法实例分析
2015/04/30 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
python监控键盘输入实例代码
2018/02/09 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python实现快递价格查询系统
2020/03/03 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
类如何去实现接口
2013/12/19 面试题
社区安全检查制度
2014/02/03 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
社区党务工作总结2015
2015/05/19 职场文书