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 相关文章推荐
在普通HTTP上安全地传输密码
Jul 21 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
Nov 26 PHP
PHP实现的memcache环形队列类实例
Jul 28 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 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
非常好的php目录导航文件代码
2006/10/09 PHP
用PHP生成静态HTML速度快类库
2007/03/18 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
给女朋友的道歉信
2014/01/10 职场文书
节能标语大全
2014/06/21 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
小学生毕业评语
2014/12/26 职场文书
公司职员入党自传书
2015/06/26 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
python中 .npy文件的读写操作实例
2022/04/14 Python