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 相关文章推荐
PHP中Session的概念
Oct 09 PHP
?生?D片??C字串
Dec 06 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
Nov 29 PHP
php Ubb代码编辑器函数代码
Jul 05 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
浅析php-fpm静态和动态执行方式的比较
Nov 09 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
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
通信工程专业女生个人求职信
2013/09/21 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
顶碗少年教学反思
2014/02/21 职场文书
部队个人年终总结
2015/03/02 职场文书
母亲去世追悼词
2015/06/23 职场文书
酒店温馨提示语
2015/07/14 职场文书
2016年元旦致辞
2015/08/01 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
mysql 带多个条件的查询方式
2021/06/05 MySQL
APP界面设计技巧和注意事项
2022/04/29 杂记
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android