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 相关文章推荐
9个JavaScript评级/投票插件
Jan 18 Javascript
基于jquery的地址栏射击游戏代码
Mar 10 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
jquery插件bootstrapValidator表单验证详解
Dec 15 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
javascript 初学教程及五子棋小程序的简单实现
Jul 04 Javascript
React Native 截屏组件的示例代码
Dec 06 Javascript
浅谈Vue2.0父子组件间事件派发机制
Jan 08 Javascript
vue自定义一个v-model的实现代码
Jun 21 Javascript
angular实现input输入监听的示例
Aug 31 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
基于vue如何发布一个npm包的方法步骤
May 15 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
对盗链说再见...
2006/10/09 PHP
php批量修改表结构实例
2017/05/24 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python实现图片转字符画的示例
2017/08/22 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
Python实现点云投影到平面显示
2020/01/18 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
小学班长竞选演讲稿
2014/04/24 职场文书
企业挂职心得体会
2014/09/10 职场文书
篮球拉拉队口号
2015/12/25 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python