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 jscroll模拟html元素滚动条
Dec 18 Javascript
JavaScript DOM进阶方法
Apr 13 Javascript
详解基于Bootstrap扁平化的后台框架Ace
Nov 27 Javascript
jQuery实现背景弹性滚动的导航效果
Jun 01 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
Jun 29 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
angular2路由之routerLinkActive指令【推荐】
May 30 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
Sep 06 Javascript
如何解决日期函数new Date()浏览器兼容性问题
Sep 11 Javascript
vue element table中自定义一些input的验证操作
Jul 18 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编程中的常见漏洞和代码实例
2014/08/06 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
网页中的图片的处理方法与代码
2009/11/26 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
python 如何快速复制序列
2020/09/07 Python
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
Java模拟试题
2014/11/10 面试题
大学运动会入场词
2014/02/22 职场文书
《开国大典》教学反思
2014/04/19 职场文书
综合实践活动总结
2014/05/05 职场文书
财务情况说明书范文
2014/05/06 职场文书
导师工作推荐信
2015/03/27 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏