php中DOMElement操作xml文档实例演示


Posted in PHP onMarch 26, 2013
<?php 
//Store your html into $html variable. 
$html="<html> 
<head> 
<title>Rakesh Verma</title> 
</head> 
<body> 
<a href='http://example.com'>Example</a> 
<a href='http://google.com'>Google</a> 
<a href='http://www.yahoo.com'>Yahoo</a> 
</body> 
</html>"; 
$dom = new DOMDocument(); 
$dom->loadHTML($html); 
//Evaluate Anchor tag in HTML 
$xpath = new DOMXPath($dom); 
$hrefs = $xpath->evaluate("/html/body//a"); 
for ($i = 0; $i < $hrefs->length; $i++) { 
$href = $hrefs->item($i); 
$url = $href->getAttribute('href'); 
//remove and set target attribute 
$href->removeAttribute('target'); 
$href->setAttribute("target", "_blank"); 
$newURL=$url.".au"; 
//remove and set href attribute 
$href->removeAttribute('href'); 
$href->setAttribute("href", $newURL); 
} 
// save html 
$html=$dom->saveHTML(); 
echo $html; 
?>

例2
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!-- css的样式定义,不加点。如:name{color:red;} --> 
<?xml-stylesheet type="text/css" href="css.css"?> 
<!-- 引入dtd文档定义文件 (根元素:班级)<!DOCTYPE 班级 SYSTEM "class.dtd" /> --> 
<!-- <!DOCTYPE 班级[ 
<!ELEMENT 班级 (学生+)> 
<!ELEMENT 学生 (名字,年龄,介绍)> 
<!ELEMENT 名字 (#PCDATA)> 
<!ELEMENT 年龄 (#PCDATA)> 
<!ELEMENT 介绍 (#PCDATA)> 
] /> --> 
<班级> 
<学生 number="101"> 
<名字>孙悟空</名字> 
<名字>孙行者</名字> 
<年龄>123</年龄> 
<介绍><![CDATA[&*$%特殊字串^&#$&]]></介绍> 
</学生> 
<学生 number="10"2"> 
<名字>白骨精</名字> 
<年龄>140</年龄> 
<介绍>介绍内容</介绍> 
</学生> 
</班级> 
*/ 
$xmldoc = new DOMDocument('1.0', 'UTF-8'); 
$xmldoc->load('datas.xml'); 
$itemsNodeList = $xmldoc->getElementsbyTagName('学生'); 
$itemElement = $itemsNodeList->item(0);//得到第一个完整的学生信息节点 
$itemChildsNodeList = $itemElement->getElementsbyTagName('名字');//得到子节点“名字”,也许有多个名字 
$itemChildNode = $itemChildsNodeList->item(0);//得到第一个名字节点 
echo $itemChildNode->nodeValue;//输出节点值 
//封装成函数 
$nodeArr = array('名字', '年龄', '介绍'); 
function getNodeVal($xmldoc, $itemsName, $nodeArr){ 
$items = $xmldoc->getElementsByTagName($itemsName); 
for($i=0; $i < $items->length; $i++){ 
$item = $items->item($i); 
foreach($nodeArr as $node){ 
$data[$i][] = $item->getElementsByTagName($node)->item(0)->nodeValue; 
} 
} 
return $data; 
} 
$data = getNodeVal($xmldoc, '学生', $nodeArr); 
print_r($data);
PHP 相关文章推荐
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
浅谈php中include文件变量作用域
Jun 18 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
PHP安装BCMath扩展的方法
Feb 13 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 #PHP
PHP中图片等比缩放的实例
Mar 24 #PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 #PHP
php实现单链表的实例代码
Mar 22 #PHP
php 判断数组是几维数组
Mar 20 #PHP
php页面消耗内存过大的处理办法
Mar 18 #PHP
ajax取消挂起请求的处理方法
Mar 18 #PHP
You might like
Zerg剧情介绍
2020/03/14 星际争霸
php+mysql 实现身份验证代码
2010/03/24 PHP
PHP 事务处理数据实现代码
2010/05/13 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
pyramid配置session的方法教程
2013/11/27 Python
详解Python中类的定义与使用
2017/04/11 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
django中related_name的用法说明
2020/05/20 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
python制作抽奖程序代码详解
2021/01/15 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
2014年单位植树节活动方案
2014/03/23 职场文书
团日活动总结
2014/04/28 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
护士先进个人总结
2015/02/13 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
反邪教观后感
2015/06/11 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
使用CSS连接数据库的方式
2022/02/28 HTML / CSS