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 面向对象实现代码
Nov 11 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP与Perl之间知识点区别整理
Mar 19 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
Laravel框架实现文件上传的方法分析
Sep 29 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中取得URL的根域名的代码
2011/03/23 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
php数组去重复数据示例
2014/02/25 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
Python中断言Assertion的一些改进方案
2016/10/27 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python 文件查找及内容匹配方法
2018/10/25 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
品质主管的岗位职责
2013/12/04 职场文书
高三体育教学反思
2014/01/29 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
丽江古城导游词
2015/02/03 职场文书
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python