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 相关文章推荐
js使用栈来实现10进制转8进制与取除数及余数
Jun 11 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
JQuery ztree 异步加载实例讲解
Feb 25 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
May 17 Javascript
浅谈js中同名函数和同名变量的执行问题
Feb 12 Javascript
详解微信第三方小程序代开发
Jun 23 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
一步步教会你微信小程序的登录鉴权
Apr 09 Javascript
webpack项目轻松混用css module的方法
Jun 12 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
Oct 26 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
Feb 14 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
Sep 08 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 flush类输出缓冲剖析
2008/10/19 PHP
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
举例讲解Python常用模块
2019/03/08 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
营销专业应届生求职信
2013/11/26 职场文书
创建文明学校实施方案
2014/03/11 职场文书
解除财产保全担保书
2014/05/20 职场文书
作风建设年度心得体会
2014/10/29 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android