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导出EXCEL快速开发指南--PHPEXCEL的使用详解
Jun 03 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
php中AES加密解密的例子小结
Feb 18 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
php+ajax实现无刷新动态加载数据技术
Apr 28 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
php 中奖概率算法实现代码
Jan 25 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 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
php切割页面div内容的实现代码分享
2012/07/31 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
Add a Formatted Table to a Word Document
2007/06/15 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
基于vue配置axios的方法步骤
2017/11/09 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
Django 实现下载文件功能的示例
2018/03/06 Python
基于python中theano库的线性回归
2018/08/31 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
简单的Python调度器Schedule详解
2019/08/30 Python
Python中无限循环需要什么条件
2020/05/27 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
函数指针的定义是什么
2016/08/14 面试题
应聘收银员个人的求职信
2013/11/30 职场文书
商场消防管理制度
2014/01/12 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
环保建议书500字
2014/05/14 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
会计稽核岗位职责
2015/04/13 职场文书
公司宣传语大全
2015/07/13 职场文书
python脚本框架webpy的url映射详解
2021/11/20 Python
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers