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 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
JavaScript 获取用户客户端操作系统版本
Aug 25 Javascript
jquery验证表单中的单选与多选实例
Aug 18 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
Feb 06 Javascript
JavaScript数组操作详解
Feb 04 Javascript
bootstrap-table组合表头的实现方法
Sep 07 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
Nov 14 Javascript
vscode中vue-cli项目es-lint的配置方法
Jul 30 Javascript
Vuex 使用及简单实例(计数器)
Aug 29 Javascript
解决vue 项目引入字体图标报错、不显示等问题
Sep 01 Javascript
ant-design-vue 快速避坑指南(推荐)
Jan 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
理解JavaScript原型链
2016/10/25 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
安装docker-compose的两种最简方法
2019/07/30 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
Tensorflow 实现释放内存
2020/02/03 Python
Python猜数字算法题详解
2020/03/01 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
初中美术教学反思
2014/01/29 职场文书
公司司机岗位职责
2014/02/07 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
新课培训心得体会
2014/09/03 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
OpenCV-Python实现油画效果的实例
2021/06/08 Python