立即注册
 找回密码
 立即注册

QQ登录

只需一步,快速开始

我逸网

我逸分享各类计算工具和资料
不再需要查找公式和数据

安逸

我逸预设各种计算条件和经验
结果只在少量调整之间

效率

将繁琐交给我逸
我用故

我逸

[PHP] PHP解析XML方法汇集

[复制链接]
发表于 2016-6-27 19:57:18 | 显示全部楼层 |阅读模式

以下汇集整理PHP解析XML方法。

books.xml文件

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <bookstore>
  3. <book category="children">
  4. <title lang="en">Harry Potter</title>
  5. <author>J K. Rowling</author>
  6. </book>
  7. <book category="cooking">
  8. <title lang="en">Everyday Italian</title>
  9. <author>Giada De Laurentiis</author>
  10. </book>
  11. </bookstore>
复制代码

DOMDocument方法解析

  1. <?php
  2. $doc=new DOMDocument(); //创建DOMDocument对象
  3. $doc->load("books.xml"); //加载XML文件
  4. $bookDom=$doc->getElementsByTagName("book"); //获取所有的book标签
  5. foreach($bookDom as $book){ //解析xml
  6. $title = $book->getElementsByTagName("title")->item(0)->nodeValue;
  7. $author = $book->getElementsByTagName("author")->item(0)->nodeValue;
  8. echo "title:".$title."<br>";
  9. echo "author:".$author."<br>";
  10. echo "****************************<br>";
  11. }
  12. ?>
复制代码

xml-parser方法解析

  1. <?php
  2. $file = "books.xml";
  3. $data = file_get_contents($file); //读取xml文件
  4. $parser = xml_parser_create(); //创建解析器
  5. xml_parse_into_struct($parser, $data, $vals, $index); //将XML数据解析到数组中
  6. xml_parser_free($parser); //释放解析器
  7. $arr = array();
  8. $t=0;
  9. foreach($vals as $value) { //处理数组
  10. $type = $value['type'];
  11. $tag = $value['tag'];
  12. $level = $value['level'];
  13. $attributes = isset($value['attributes']) ? $value['attributes'] : "";
  14. $val = isset($value['value']) ? $value['value'] : "";
  15. switch ($type) {
  16. case 'open':
  17. if ($attributes != "" || $val != "") {
  18. $arr[$t]['tag'] = $tag;
  19. $arr[$t]['attributes'] = $attributes;
  20. $arr[$t]['level'] = $level;
  21. $t++;
  22. }
  23. break;
  24. case "complete":
  25. if ($attributes != "" || $val != "") {
  26. $arr[$t]['tag'] = $tag;
  27. $arr[$t]['attributes'] = $attributes;
  28. $arr[$t]['val'] = $val;
  29. $arr[$t]['level'] = $level;
  30. $t++;
  31. }
  32. break;
  33. }
  34. }
  35. echo "<pre>";
  36. print_r($arr);
  37. echo "</pre>";
  38. ?>
复制代码

simplexml方法解析

  1. <?php
  2. $file="books.xml";
  3. $xml = simplexml_load_file($file); //载入books.xml
  4. echo "<pre>";
  5. print_r($xml);
  6. echo "</pre>";
  7. ?>
复制代码

回复 收藏

使用道具 举报

发表于 2018-9-1 16:41:40 | 显示全部楼层
呦呦资源论坛开放注册了!!限时开放注册

iujlb03.com
回复 支持 反对 收藏

使用道具 举报

发表于 2018-9-2 13:26:23 | 显示全部楼层
呦呦资源论坛开放注册了!!限时开放注册

iujlb03.com
回复 支持 反对 收藏

使用道具 举报

发表于 2018-9-3 19:06:35 | 显示全部楼层
呦呦资源论坛开放注册了!!限时开放注册

iujlb03.com
回复 支持 反对 收藏

使用道具 举报

发表于 2018-10-13 11:02:55 | 显示全部楼层
呦呦资源论坛开放注册了!!限时开放注册

iujlb06.com
回复 支持 反对 收藏

使用道具 举报

发表于 2018-11-4 14:38:56 | 显示全部楼层

国外uu,国产uu最新地址开放注册了,网站难找



iujlb06.com
回复 支持 反对 收藏

使用道具 举报

发表于 2018-11-9 03:26:26 | 显示全部楼层

国外uu,国产uu最新地址开放注册了,网站难找



iujlb06.com
回复 支持 反对 收藏

使用道具 举报

Archiver|服务支持:DZ动力|  

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

Copyright © 2016-2022 我逸网 cmd2d.com All Rights Reserved.
备案号:皖ICP备16004147号-1

beian 皖公网安备 34010302000278号

快速回复 返回顶部 返回列表