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 相关文章推荐
Extjs优化(二)Form表单提交通用实现
Apr 15 Javascript
js控制web打印(局部打印)方法整理
May 29 Javascript
可选择和输入的下拉列表框示例
Nov 05 Javascript
js实现两点之间画线的方法
May 12 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
JS关于刷新页面的相关总结
May 09 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
Aug 31 Javascript
vuejs实现折叠面板展开收缩动画效果
Sep 06 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
Sep 18 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
js实现省级联动(数据结构优化)
Jul 17 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中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
Using the TextRange Object
2006/10/14 Javascript
jquery的颜色选择插件实例代码
2008/10/02 Javascript
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Python中函数参数调用方式分析
2018/08/09 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
挑战杯创业计划书的写作指南
2014/01/07 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
单位委托函范文
2015/01/29 职场文书
2014年底个人工作总结
2015/03/10 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python