相思资源网 Design By www.200059.com
复制代码 代码如下:
<?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');
}
?>
<?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');
}
?>
标签:
DOM复制
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?