• 技术文章 >后端开发 >php教程

    PHP使用DOM和simplexml读取xml文档的方法详解

    墨辰丷墨辰丷2018-05-25 17:13:06原创484
    这篇文章主要介绍了PHP使用DOM和simplexml读取xml文档的方法,结合实例形式分析了php使用DOM及simplxml针对xml文件的创建、载入、读取等相关操作技巧,需要的朋友可以参考下

    本文实例讲述了PHP使用DOM和simplexml读取xml文档的方法。分享给大家供大家参考,具体如下:

    实例 用DOM获取下列xml文档中所有金庸小说的书名,该xml文档所在位置为 ./books.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <root>
     <book>
      <title>天龙八部</title>
      <author>金庸</author>
     </book>
     <book>
      <title>陆小凤</title>
      <author>古龙</author>
     </book>
     <book>
      <title>倚天屠龙记</title>
      <author>金庸</author>
     </book>
     <book>
      <title>西游记</title>
      <author>吴承恩</author>
     </book>
     <book>
      <title>神雕侠侣</title>
      <author>金庸</author>
     </book>
     <book>
      <title>射雕英雄传</title>
      <author>金庸</author>
     </book>
    </root>

    用DOM代码实现:

    DOM读取xml文档步骤:1、创建DOM对象——》2、载入DOM文档内容——》3、截取要读取内容所在的标签——》获得要读取的内容。

    header('Content-type:text/html;charset=utf-8');
    $arr=array();
    $dom = new DOMDocument();//创建DOM对象
    $dom->load('./books.xml');//载入xml文档
    print_r($dom);
    echo '<hr>';
    $dom = $dom->getElementsByTagName('book');//截取标签
    for($i=0;$i<$dom->length;$i++){
     if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText=='金庸'){
      $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.'<br />';//获取内容
     }
    }
    print_r($arr);

    使用 getElementsByTagName 和 childNodes 后返回的都是对象,所以它们后面必须使用 item(int),哪怕它们返回的对象里面只包含一个项目,也必须用item(0)来指定,否则就会出错。

    用simplexml代码实现:

    $simxml = simplexml_load_file('./books.xml');
    $t = $simxml->book;
    $arr=array();
    foreach ($t as $v){
     if($v->author=='金庸'){
      $arr[] = (string)$v->title;
     }
    }
    print_r($arr);

    使用 simplexml_load_file 后返回的是对象,该对象里的项目既有对象又有数组,不管是对象还是数组,要循环里面的内容都可以用 foreach。该实例最后获取的内容 $v->title 其实是个对象,所以要用 string 转化为字符串。

    以上就是本文的全部内容,希望对大家的学习有所帮助。


    相关推荐:

    PHP实现基于SimpleXML生成和解析xml的方法

    PHP xml解析与生成之SimpleXML使用介绍

    php SimpleXML()函数用法详解

    以上就是PHP使用DOM和simplexml读取xml文档的方法详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:simplexml php 方法
    上一篇:PHP 实现获取指定地区的天气的方法 下一篇:PHP判断数组是否为空的五种常用方法
    大前端线上培训班

    相关文章推荐

    • PHP数组操作之怎样删除数组中的首尾元素?• 一文讲解接口含义及如何用接口写高质量PHP代码• 学会获取多个数组差集的三个方法(收藏)• 怎样获取数组中的键名?怎样转换键名的大小写?• 带你快速掌握PHP数组元素的替换(实例详解)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网