xml源文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <humans>
  3. <zhangying>
  4. <name>张映</name>
  5. <sex>男</sex>
  6. <old>28</old>
  7. </zhangying>
  8. <tank>
  9. <name>tank</name>
  10. <sex>男</sex>
  11. <old>28</old>
  12. </tank>
  13. </humans>
复制代码

1)DOMDocument读取xml

  1. <?php
  2. $doc = new DOMDocument();
  3. $doc->load('person.xml'); //读取xml文件
  4. $humans = $doc->getElementsByTagName_r( "humans" ); //取得humans标签的对象数组
  5. foreach( $humans as $human )
  6. {
  7. $names = $human->getElementsByTagName_r( "name" ); //取得name的标签的对象数组
  8. $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
  9. $sexs = $human->getElementsByTagName_r( "sex" );
  10. $sex = $sexs->item(0)->nodeValue;
  11. $olds = $human->getElementsByTagName_r( "old" );
  12. $old = $olds->item(0)->nodeValue;
  13. echo "$name - $sex - $oldn";
  14. }
  15. ?>
<?php
 //创建一个DOMDocument对象
 $doc=new DOMDocument();
 //加载XML文件
 $doc->load("books.xml");
 //获取所有的book标签
 $bookDom=$doc->getElementsByTagName("book");
 foreach($bookDom as $book){
  $title = $book->getElementsByTagName("title")->item(0)->nodeValue;
  $author = $book->getElementsByTagName("author")->item(0)->nodeValue;
  $year = $book->getElementsByTagName("year")->item(0)->nodeValue;
  $price = $book->getElementsByTagName("price")->item(0)->nodeValue;
  echo "title:".$title."<br>";
  echo "author:".$author."<br>";
  echo "year:".$year."<br>";
  echo "price:".$price ."<br>";
  echo "***********************************<br>";
 }
?>

单条就不必循环了:

$dom->load($url1);
$status = $dom->getElementsByTagName( "productStatusName" ); //取得productStatusName的标签的对象数组
$status = $status->item(0)->nodeValue;

复制代码

2)simplexml读取xml

  1. <?php
  2. $xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中
  3. foreach($xml_array as $tmp){
  4. echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>";
  5. }
  6. ?>
复制代码

3)用php正则表达式来记取数据

  1. <?php
  2. $xml = "";
  3. $f = fopen('person.xml', 'r');
  4. while( $data = fread( $f, 4096 ) ) {
  5. $xml .= $data;
  6. }
  7. fclose( $f );
  8. // 上面读取数据
  9. preg_match_all( "/<humans>(.*?)</humans>/s", $xml, $humans ); //匹配最外层标签里面的内容
  10. foreach( $humans[1] as $k=>$human )
  11. {
  12. preg_match_all( "/<name>(.*?)</name>/", $human, $name ); //匹配出名字
  13. preg_match_all( "/<sex>(.*?)</sex>/", $human, $sex ); //匹配出性别
  14. preg_match_all( "/<old>(.*?)</old>/", $human, $old ); //匹配出年龄
  15. }
  16. foreach($name[1] as $key=>$val){
  17. echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ;
  18. }
  19. ?>
复制代码

4)xmlreader来读取xml数据

  1. <?php
  2. $reader = new XMLReader();
  3. $reader->open('person.xml'); //读取xml数据
  4. $i=1;
  5. while ($reader->read()) { //是否读取
  6. if ($reader->nodeType == XMLReader::TEXT) { //判断node类型
  7. if($i%3){
  8. echo $reader->value; //取得node的值
  9. }else{
  10. echo $reader->value."<br>" ;
  11. }
  12. $i++;
  13. }
  14. }
  15. ?>

解析XML数据,必看的更多相关文章

  1. 解析xml数据存入bean映射到数据库的 需求解决过程

    解析xml数据存入bean映射到数据库的 需求解决过程2017年12月19日 15:18:57 守望dfdfdf 阅读数:419 标签: xmlbean 更多个人分类: 工作 问题编辑版权声明:本文为 ...

  2. iOS解析XML数据

    iOS中解析XML数据的类是  NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSX ...

  3. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. 160928、JQuery解析XML数据的demo

    用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 方案1 当后台返回的数据类型是xml对象 ...

  5. 【iOS-cocos2d-X 游戏开发之九】Cocos2dx利用CCSAXParser解析xml数据&CCMutableDictionary使用与注意!

    本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/694.html ☞ ...

  6. JQuery解析XML数据的几个例子

    用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 第一种方案: <script ty ...

  7. (四)SAX方式解析XML数据

    SAX方式解析XML数据 ​文章来源:http://www.cnblogs.com/smyhvae/p/4044170.html 一.XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程 ...

  8. 导入libxml.dylib用Google的GDataXML解析XML数据

    1.用Google的GDataXML来解析XML数据,导入libxml.dylib 2.导入libxml.dylib的操作实现,一开始自己总是找不到libxml.dylib文件. 选择其他文件,到路径 ...

  9. 【Android Developers Training】 81. 解析XML数据

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  10. 使用dom4j中SAXReader解析xml数据

    public ApiConfig(String configFilePath) throws DocumentException{ SAXReader reader = new SAXReader() ...

随机推荐

  1. EasyExcel 轻松灵活读取Excel内容

    写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现, ...

  2. UVA1420 Priest John's Busiest Day【贪心】

    题意简介 有一个司仪,要主持n场婚礼,给出婚礼的起始时间和终止时间,每个婚礼需要超过一半的时间做为仪式,并且仪式不能终止.问说司仪能否主持n场婚礼. 输入格式 多组数据,每组数据输入一个\(N\)(\ ...

  3. 渗透测试-基于白名单执行payload--Cmstp

    0x01 Cmstp简介 Cmstp安装或删除“连接管理器”服务配置文件.如果不含可选参数的情况下使用,则 cmstp 会使用对应于操作系统和用户的权限的默认设置来安装服务配置文件. 微软官方文档: ...

  4. 在博客中增加自己的live2d纸片人模型方法

    目录 在博客中增加自己的live2d纸片人模型 准备工具 使用步骤 附件 在博客中增加自己的live2d纸片人模型 准备工具 github仓库:存放live2d模型和json文件 如果你的博客支持本地 ...

  5. python 2.x中的中文

    先不管一大堆的中文显示的原理,在这里记录下正确显示中文的方式,便于以后的查阅和深入学习. 方法1 a = {} a["哈哈哈"] = "啦啦啦啦啦啦啦" s1 ...

  6. shell传递参数(三)

    $n:n代表一个数字,指执行脚本的第n个参数.特别地,$0指执行的文件名 [root@ipha-dev71- exercise_shell]# cat test.sh #!/bin/bash echo ...

  7. 题解 CF600E 【Lomsat gelral】

    没有多少人用莫队做吗? 蒟蒻水一波莫队 这是一道树上莫队好题. 时间复杂度(\(n\sqrt{n}logn\)) 蒟蒻过菜,不会去掉logn的做法qaq 思路很简单: 1.dfs跑一下树上点的dfs序 ...

  8. 使用Jersey构建图片服务器

    使用Jersey构建图片服务器 前台页面代码 <form id="jvForm" action="add.do" method="post&qu ...

  9. MySQL操作(一)用户及权限

    一.mysql 里的所有用户都是存储在数据库mysql的user表里 二.创建普通用户.赋权.撤销权限 的操作 1.创建用户(需要先用root进去mysql)格式:create  user  '用户名 ...

  10. Spring Cloud Alibaba(三)Sentinel之熔断降级

    本项目演示如何使用 Sentinel 完成 Spring Cloud 应用的熔断降级调用. Sentinel 是阿里巴巴开源的分布式系统的流量防卫组件,Sentinel 把流量作为切入点,从流量控制, ...