全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文实例讲述了PHP基于DOMDocument解析和生成xml的方法。分享给大家供大家参考,具体如下:

前面和大家分享了SimpleXML操作xml的一些知识,但是php中除了simplexml还有DOMDocument,这次就着重来看看DOMDocument的用法,还是把生成xml和解析xml分开写

1. xml的生成

DOMDocument操作xml要比先前的simplexml要复杂一点,我觉得simplexml就想Java里的dom4j,不管怎样原理都是一样的。如果把DOMDocument里的节点,属性看做是枝叶那么DOMDocument的DOMDocument就是根,节点和属性都挂载在这个对象下面。看看下面的代码就很清楚了

<?php
 $doc=new DOMDocument('1.0','utf-8');
 //创建根节点
 $root=$doc->createElement("StudentInfo");
 //创建第一个子节点
 $item=$doc->createElement("Item");
 $name=$doc->createElement("name","蔡依林");
 $studentnum=$doc->createElement("num","2009010502");
 //创建属性(phpdom可以把任何元素当做子节点)
 $id=$doc->createAttribute("id");
 $value=$doc->createTextNode('1');
 $id->appendChild($value);
 //在父节点下面加入子节点
 $item->appendChild($name);
 $item->appendChild($studentnum);
 $item->appendChild($id);
 $item2=$doc->createElement("Item");
 $name2=$doc->createElement("name","潘玮柏");
 $studentnum2=$doc->createElement("num","2009010505");
 $id2=$doc->createAttribute("id");
 $value2=$doc->createTextNode('2');
 $id2->appendChild($value2);
 $item2->appendChild($name2);
 $item2->appendChild($studentnum2);
 $item2->appendChild($id2);
 $root->appendChild($item);
 $root->appendChild($item2);
 //把根节点挂载在DOMDocument对象
 $doc->appendChild($root);
 header("Content-type: text/xml");
 //在页面上输出xml
 echo $doc->saveXML();
 //将xml保存成文件
 $doc->save("stu.xml");
?>

这段代码仔细看的话其实不复杂,可能性在id属性的那个地方会有点疑问,文本节点也必须挂载在DOMDocument下面,之后把文本节点挂载在属性下面。来看下生成的xml

其实DOMDocument是首先生成节点或属性,而xml的层级关系是最后通过addchild来体现的

2. DOMDocument解析

<?php
 $doc=new DOMDocument();
 //如果是解析xml字符串则使用loadXML
 $doc->load('stu.xml');
 //取得根节点
 $root=$doc->documentElement;
 //通过标记的名字取得对应的元素
 $items=$root->getElementsByTagName('Item');
 foreach($items as $key=>$val){
  // echo count($val->attributes);
  //id是第一个属性所以使用item(0),nodeValue用来取得节点的值
  echo $val->attributes->item(0)->name.":".$val->attributes->item(0)->nodeValue."  ";
  foreach($val->getElementsByTagName('name') as $key2=>$val2){
    echo $val2->nodeValue."  ";
  }
  foreach($val->getElementsByTagName('num') as $key3=>$val4){
    echo $val4->nodeValue."</br>";
  }
 }
?>

解析的话重在理解,getElementsByTagName方法,attributes属性和item是解析xml的重点。别的都算简单,看看解析出来的东西

总的来说是比simplexml麻烦一些,但是作为程序员还能接受吧。

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

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

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

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

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

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

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # DOMDocument  # 解析  # 生成  # xml  # PHP使用DOMDocument类生成HTML实例(包含常见标签元素)  # 如何解决php domdocument找不到的问题  # PHP中使用DOMDocument来处理HTML、XML文档的示例  # PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】  # PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】  # PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案  # php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)  # PHP XML操作类DOMDocument  # php基于DOMDocument操作页面元素实例  # 操作技巧  # 程序设计  # 相关内容  # 在这个  # 我觉得  # 第一个  # 还能  # 感兴趣  # 这段  # 给大家  # 要比  # 很清楚  # 就想  # 大家分享  # 更多关于  # 所述  # 仔细看  # 重来  # 几款  # 面向对象 


相关文章: 制作营销网站公司,淘特是干什么用的?  定制建站价位费用解析与套餐推荐全攻略  如何在IIS服务器上快速部署高效网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  html制作网站的步骤有哪些,iapp如何添加网页?  如何选择PHP开源工具快速搭建网站?  建站ABC备案流程中有哪些关键注意事项?  建站之星2.7模板:企业网站建设与h5定制设计专题  建站10G流量真的够用吗?如何应对访问高峰?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  如何生成腾讯云建站专用兑换码?  如何通过cPanel快速搭建网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  Android自定义listview布局实现上拉加载下拉刷新功能  如何通过虚拟主机快速搭建个人网站?  如何在宝塔面板创建新站点?  建站主机解析:虚拟主机配置与服务器选择指南  建站主机SSH密钥生成步骤及常见问题解答?  如何通过FTP服务器快速搭建网站?  如何通过wdcp面板快速创建网站?  香港服务器租用费用高吗?如何避免常见误区?  如何在建站宝盒中设置产品搜索功能?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  建站之星IIS配置教程:代码生成技巧与站点搭建指南  建站为何优先选择香港服务器?  代刷网站制作软件,别人代刷火车票靠谱吗?  c++怎么用jemalloc c++替换默认内存分配器【性能】  如何零基础开发自助建站系统?完整教程解析  网站制作新手教程,新手建设一个网站需要注意些什么?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在阿里云通过域名搭建网站?  建站之星安装后如何配置SEO及设计样式?  建站之星CMS五站合一模板配置与SEO优化指南  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  如何快速查询网站的真实建站时间?  营销式网站制作方案,销售哪个网站招聘效果最好?  制作销售网站教学视频,销售网站有哪些?  如何做静态网页,sublimetext3.0制作静态网页?  香港服务器部署网站为何提示未备案?  视频网站制作教程,怎么样制作优酷网的小视频?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何在搬瓦工VPS快速搭建网站?  公众号网站制作网页,微信公众号怎么制作?  智能起名网站制作软件有哪些,制作logo的软件?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  常州企业建站如何选择最佳模板?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。