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类继承机制的原理分析
Sep 12 Javascript
Javascript var变量隐式声明方法
Oct 19 Javascript
一个简单的Ext.XTemplate的实例代码
Mar 18 Javascript
JQuery ztree 异步加载实例讲解
Feb 25 Javascript
纯JS代码实现一键分享功能
Apr 20 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
Bootstarp基本模版学习教程
Feb 01 Javascript
在一般处理程序(ashx)中弹出js提示语
Aug 16 Javascript
JavaScript动态绑定详解
Sep 14 Javascript
浅析Angular19 自定义表单控件
Jan 31 Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 Javascript
vue实现跨域的方法分析
May 21 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遍历树的常用方法汇总
2015/06/18 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
python pyheatmap包绘制热力图
2018/11/09 Python
python 自定义对象的打印方法
2019/01/12 Python
pandas.cut具体使用总结
2019/06/24 Python
Python上下文管理器全实例详解
2019/11/12 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
中学生爱国演讲稿
2013/12/31 职场文书
社区端午节活动方案
2014/01/28 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
php修改word的实例方法
2021/11/17 PHP
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang
table不让td文字溢出操作方法
2022/12/24 HTML / CSS