js中使用DOM復(fù)制(克隆)指定節(jié)點名數(shù)據(jù)到新的XML文件中的代碼
更新時間:2011年07月27日 00:53:47 作者:
使用DOM復(fù)制(克?。┲付ü?jié)點名數(shù)據(jù)到新的XML文件中 ,用到三個類的相關(guān)知識點 : DOMDocument - DOMNodeList - DOMNode
復(fù)制代碼 代碼如下:
<?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復(fù)制(克隆)指定節(jié)點名數(shù)據(jù)到新的XML文件中 ,用到三個類的相關(guān)知識點 : 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')) {
/*
* 復(fù)制指定節(jié)點元素信息到新XML文件中
* @param $dom : 源XML文件的DOM對象
* @param $newdom : 新XML文件的DOM對象
* @param $node: 指定復(fù)制的節(jié)點元素名
* @param $file: 新生成的XML文件名
* @param $attribute: 指定復(fù)制的節(jié)點元素的屬性名
* @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)) {
//創(chuàng)建屬性名
$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');
}
?>
您可能感興趣的文章:
相關(guān)文章
一個字符串反轉(zhuǎn)函數(shù)可實現(xiàn)字符串倒序
這篇文章主要介紹了一個字符串反轉(zhuǎn)函數(shù)可實現(xiàn)字符串倒序,很簡單,但很實用,感興趣的朋友可以參考下2014-09-09JS實現(xiàn)淡藍(lán)色簡潔豎向Tab點擊切換效果
這篇文章主要介紹了JS實現(xiàn)淡藍(lán)色簡潔豎向Tab點擊切換效果,通過JavaScript相應(yīng)鼠標(biāo)事件實現(xiàn)非常簡單的css樣式切換,簡單實用,需要的朋友可以參考下2015-10-10支持多瀏覽器(IE、Firefox、Opera)剪切板復(fù)制函數(shù)_腳本之家修正版
有朋友要剪切板復(fù)制函數(shù),可網(wǎng)上的好多代碼都是不能運(yùn)行的,各種其它符號,導(dǎo)致了腳本的不可運(yùn)行,腳本之家站長特整理了下,修正了錯誤。2008-12-12使用JavaScript實現(xiàn)表格編輯器(實例講解)
下面小編就為大家?guī)硪黄褂肑avaScript實現(xiàn)表格編輯器(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08JavaScript利用img實現(xiàn)前端頁面埋點功能
做數(shù)據(jù)分析的時候需要獲取足量的有效數(shù)據(jù),這個時候就需要我們在前端頁面埋點。如何來實現(xiàn)一個前端埋點功能,本文就帶你上手試試2022-06-06