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加解密功能页面
Dec 12 Javascript
js querySelector和getElementById通过id获取元素的区别
Apr 20 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
Jan 02 Javascript
实现非常简单的js双向数据绑定
Nov 06 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
May 26 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
Aug 08 Javascript
axios 封装上传文件的请求方法
Sep 26 Javascript
4个顶级开源JavaScript图表库
Sep 29 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
Sep 01 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
Aug 04 Javascript
js闭包和垃圾回收机制示例详解
Mar 01 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实现上传图片到 zimg 服务器
2016/10/19 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python多线程学习资料
2012/12/19 Python
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
Python3字符串学习教程
2015/08/20 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
物流专业大学生求职信范文
2013/10/28 职场文书
励志演讲稿600字
2014/08/21 职场文书
2014年学校工作总结
2014/11/20 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
Jsonp劫持学习
2021/04/01 PHP
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang