PHP XML操作类DOMDocument

php中文网
发布: 2016-06-23 14:30:35
原创
1011人浏览过

不得不自已写一个.xml 的操作一直没有用过.下面是自己搜集的xml操作类

domdocument相关的内容.

属性:
attributes--->存储节点的属性列表(只读)
childnodes--->存储节点的子节点列表(只读)
datatype--->返回此节点的数据类型
definition--->以dtd或xml模式给出的节点的定义(只读)
doctype--->指定文档类型节点(只读)
documentelement--->返回文档的根元素(可读写)
firstchild--->返回当前节点的第一个子节点(只读)
implementation--->返回xmldomimplementation对象
lastchild--->返回当前节点最后一个子节点(只读)
nextsibling--->返回当前节点的下一个兄弟节点(只读)
nodename--->返回节点的名字(只读)
nodetype--->返回节点的类型(只读)
nodetypedvalue--->存储节点值(可读写)
nodevalue--->返回节点的文本(可读写)
ownerdocument--->返回包含此节点的根文档(只读)
parentnode--->返回父节点(只读)
parsed--->返回此节点及其子节点是否已经被解析(只读)
prefix--->返回名称空间前缀(只读)
preservewhitespace--->指定是否保留空白(可读写)
previoussibling--->返回此节点的前一个兄弟节点(只读)
text--->返回此节点及其后代的文本内容(可读写)
url--->返回最近载入的xml文档的url(只读)
xml--->返回节点及其后代的xml表示(只读)

方法:
appendchild--->为当前节点添加一个新的子节点,放在最后的子节点后
clonenode--->返回当前节点的拷贝
createattribute--->创建新的属性
createcdatasection--->创建包括给定数据的cdata段
createcomment--->创建一个注释节点
createdocumentfragment--->创建documentfragment对象
createelement--->创建一个元素节点
createentityreference--->创建entityreference对象
createnode--->创建给定类型,名字和命名空间的节点
createporcessinginstruction--->创建操作指令节点
createtextnode--->创建包括给定数据的文本节点
getelementsbytagname--->返回指定名字的元素集合
haschildnodes--->返回当前节点是否有子节点
insertbefore--->在指定节点前插入子节点
load--->导入指定位置的xml文档
loadxml--->导入指定字符串的xml文档
removechild--->从子结点列表中删除指定的子节点
replacechild--->从子节点列表中替换指定的子节点
save--->把xml文件存到指定节点
selectnodes--->对节点进行指定的匹配,并返回匹配节点列表
selectsinglenode--->对节点进行指定的匹配,并返回第一个匹配节点
transformnode--->使用指定的样式表对节点及其后代进行转换
transformnodetoobject--->使用指定的样式表将节点及其后代转换
实例获取标签属性.值:

me.xml

View Code

 1 <?xml version="1.0" encoding="utf-8"?>  2 <phplamp>  3 <post>  4 <title id="1">PHP XML处理介绍一</title>  5 <details>详细内容一</details>  6 </post>  7 <post>  8 <title id="2">PHP XML处理介绍二</title>  9 <details>详细内容二</details> 10 </post> 11 <post> 12 <title id="3">PHP XML处理介绍三</title> 13 <details>详细内容三</details> 14 </post> 15 </phplamp>
登录后复制

 

立即学习PHP免费学习笔记(深入)”;

 
 

View Code

 1 // 首先要建一个DOMDocument对象  2 $xml = new DOMDocument();  3 // 加载Xml文件  4 $xml->load("me.xml");  5 // 获取所有的post标签  6 $postDom = $xml->getElementsByTagName("post");  7 // 循环遍历post标签  8 foreach($postDom as $post){  9 // 获取Title标签Node 10 $title = $post->getElementsByTagName("title"); 11 /** 12 * 要获取Title标签的Id属性要分两部走 13 * 1. 获取title中所有属性的列表也就是$title->item(0)->attributes 14 * 2. 获取title中id的属性,因为其在第一位所以用item(0) 15 * 16 * 小提示: 17 * 若取属性的值可以用item(*)->nodeValue 18 * 若取属性的标签可以用item(*)->nodeName 19 * 若取属性的类型可以用item(*)->nodeType 20 */ 21 echo "Id: " . $title->item(0)->attributes->item(0)->nodeValue . "<br />"; 22 echo "Title: " . $title->item(0)->nodeValue . "<br />"; 23 echo "Details: " . $post->getElementsByTagName("details")->item(0)->nodeValue . "<br /><br />"; 24 } 
登录后复制

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;



下面是js读取xml文件的代码 ajax+xml留言

Javascript代码

 1 var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); 2 xmldoc.async = false; 3 var 旧发言 = ""; 4 function getxml(){ 5     try { 6         xmldoc.load("word.xml"); 7         if (xmldoc.documentElement != null) { 8             var 新发言 = xmldoc.xml; 9             if (新发言 != 旧发言) {10                 旧发言 = 新发言;11                 var allwords = xmldoc.selectNodes("list/message");12                 新发言 = "";13                 for (var i = 0; i < allwords.length; i++) {14                     var 数组 = allwords[i].text.split("@");15                     var 作者 = 数组[0];16                     if (作者 == 用户名.value) {17                         作者 = "<font color='Turquoise'>" + 作者 + "</font>";18                     }19                     else {20                         作者 = "<font color='Silver'>" + 作者 + "</font>";21                     }22                     var 发言 = "<font color='Gold'>" + 数组[1] + "</font>";23                     新发言 += "<div>" + 作者 + " " + 发言 + "</div>" +24                     "<div style='text-align:right;font-size:9px;'>" +25                     allwords[i].getAttribute("author").substring(0, allwords[i].getAttribute("author").lastIndexOf(".") + 1) +26                     "* " +27                     allwords[i].getAttribute("time") +28                     "</div>";29                 }30                 words.innerHTML = 新发言;31                 words.scrollTop = words.scrollHeight;32             }33         }34     } 35     catch (e) {36     }37 }38 39 var 读取中 = false;40 function getdata(){41     if (!读取中) {42         读取中 = true;43         getxml();44         读取中 = false;45     }46     setTimeout("getdata()", 3000);47 }48 49 getdata();50 submit.onclick = function(){51     submit.disabled = true;52     if (word.value != "") {53         var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");54         xmlHttp.open("GET", "save.php?name=" + encodeURIComponent(用户名.value) + "&word=" + encodeURIComponent(word.value), true);55         xmlHttp.setRequestHeader("Content-Type", "text/html; charset=utf-8");56         xmlHttp.send(null);57         word.value = "";58         if (!读取中) {59             读取中 = true;60             getxml();61             读取中 = false;62         }63     }64     setTimeout("submit.disabled = false;", 3000);65     word.focus();66 }
登录后复制

 

立即学习PHP免费学习笔记(深入)”;

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号