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开发技术大全-第1章javascript概述
Jul 03 Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
nodeType属性返回被选节点的节点类型介绍
Nov 22 Javascript
解决js中window.open弹出的是上次的缓存页面问题
Dec 29 Javascript
jQuery选择器querySelector的使用指南
Jan 23 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 Javascript
js下载文件并修改文件名
May 08 Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
vue使用laydate时间插件的方法
Nov 14 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函数代码
2010/04/22 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
python文件和目录操作函数小结
2014/07/11 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
Html5定位终极解决方案
2020/02/05 HTML / CSS
计算机大学生的自我评价
2013/10/15 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
团日活动总结怎么写
2014/06/25 职场文书
保护地球的宣传语
2015/07/13 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
js Proxy的原理详解
2021/05/25 Javascript
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏
优化Mysql查询的示例
2022/04/26 MySQL