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 22 Javascript
60行js代码实现俄罗斯方块
Mar 31 Javascript
JavaScript判断IE版本型号
Jul 27 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
Oct 19 Javascript
Vue.js组件tree实现省市多级联动
Dec 02 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
xmlplus组件设计系列之图标(ICON)(1)
May 05 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
angularjs 获取默认选中的单选按钮的value方法
Feb 28 Javascript
深入Vue-Router路由嵌套理解
Aug 13 Javascript
基于Vue插入视频的2种方法小结
Apr 02 Javascript
彻底揭秘keep-alive原理(小结)
May 05 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
PHP伪静态写法附代码
2008/06/20 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
php json转换相关知识(小结)
2018/12/21 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
番茄的表单验证类代码修改版
2008/07/18 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
python生成n个元素的全组合方法
2018/11/13 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
内刊编辑求职自荐书范文
2014/02/19 职场文书
护士长竞聘书
2014/03/31 职场文书
总经理人事任命书
2014/06/05 职场文书
拓展训练激励口号
2014/06/17 职场文书
迁户口计划生育证明
2014/10/19 职场文书
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技