手机版

基于DOMDocument的PHP解析和生成xml分析

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

本文描述了一种基于DOMDocument的PHP解析和生成xml的方法。分享给大家参考,如下:

之前和大家分享了一些simplexml操作的知识,但是除了Simplexml之外,php中还有DOM文档。这一次,我想再次看看DOM文档的用法,或者将xml与xml生成和XML解析分开编写

1.xml生成

DOMDocument的Xml操作比以前的simplexml稍微复杂一点。我觉得simplexml就像Java中的dom4j一样,无论什么原理都是一样的。如果把DOMDocument中的节点和属性看作枝叶,那么DOMDocument的DOMDocument就是根,节点和属性挂载在这个对象下。看看下面的代码就明白了

?php $doc=new DOMDocument('1.0 ',' utf-8 ');//创建根节点$ root=$ doc-Create element(' studentinfo ');//创建第一个子节点$ Item=$ doc-createElement(' Item ');$name=$doc-createElement('name ','蔡依林');$ student num=$ doc-create element(' num ',' 2009010502 ');//创建属性(phpdom可以将任意元素作为子节点)$ id=$ doc-createAttribute(' id ');$ value=$ doc-createTextNode(' 1 ');$ id-appendChild($ value);//在父节点下添加子节点$ item-appendChild($ name);$ item-appendChild($ student num);$ item-appendChild($ id);$ Item 2=$ doc-create element(' Item ');$ name 2=$ doc-create element(' name ','潘玮柏');$ studentnum 2=$ doc-create element(' num ',' 2009010505 ');$ id2=$ doc-CreateAttribute(' id ');$ value 2=$ doc-createTextNode(' 2 ');$ id2-appendChild($ value 2);$ item 2-appendChild($ name 2);$ item 2-appendChild($ studentnum 2);$ item 2-appendChild($ id2);$ root-appendChild($ item);$ root-appendChild($ item 2);//在DOMDocument对象$doc-appendChild($root)上挂载根节点;标题(' Content-type : text/XML ');//在页面上输出XML echo $ doc-SaveXMl();//将xml另存为文件$ doc-save(' stu . XML ');仔细看这段代码,并不复杂,在id属性上可能性有点值得怀疑。文本节点也必须装载在DOMDocument下,然后文本节点装载在属性下。看看生成的xml

事实上,DOMDocument是第一个创建节点或属性的老师,xml的层次关系最终通过addchild来体现

2.多文档分析

?PHP $ doc=new DOM document();//如果解析xml字符串,使用load XML $ doc-load(' stu . XML ');//获取根节点$ root=$ doc-document element;//通过标记的名称获取相应的元素$ items=$ root-getelementsbytagname(' item ');foreach($ items as $ key=$ val){//echo count($ val-attributes);//id是第一个属性,所以使用item (0),也就是item(0),nodeValue来获取node echo $ val-attributes-item(0)-name的值。' :'.$ val-属性-项(0)-节点值。'';foreach($ val-getElementsByTagName(' name ')as $ key 2=$ val 2){ echo $ val 2-node value。' ';} foreach($ val-getElementsByTagName(' num ')as $ key 3=$ val 4){ echo $ val 4-node value。/br ';} }?解析重在理解,getElementsByTagName方法、attributes属性和item是解析xml的关键点。其他的都很简单。看看解决了什么

一般来说,它比simplexml更麻烦,但作为程序员来说是可以接受的。

PS:这里有一些关于xml操作的在线工具,供大家参考:

在线XML/JSON相互转换工具:http://tools.jb51.net/code/xmljson

在线格式化/在线压缩:http://tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:http://tools.jb51.net/code/xmlcodeformat

更多对PHP相关内容感兴趣的读者可以查看本网站的话题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》、《php常见数据库操作技巧汇总》、0103010。

希望本文对PHP编程有所帮助。

版权声明:基于DOMDocument的PHP解析和生成xml分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。