解析XML数据,必看
xml源文件
- <?xml version="1.0" encoding="UTF-8"?>
- <humans>
- <zhangying>
- <name>张映</name>
- <sex>男</sex>
- <old>28</old>
- </zhangying>
- <tank>
- <name>tank</name>
- <sex>男</sex>
- <old>28</old>
- </tank>
- </humans>
1)DOMDocument读取xml
- <?php
- $doc = new DOMDocument();
- $doc->load('person.xml'); //读取xml文件
- $humans = $doc->getElementsByTagName_r( "humans" ); //取得humans标签的对象数组
- foreach( $humans as $human )
- {
- $names = $human->getElementsByTagName_r( "name" ); //取得name的标签的对象数组
- $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
- $sexs = $human->getElementsByTagName_r( "sex" );
- $sex = $sexs->item(0)->nodeValue;
- $olds = $human->getElementsByTagName_r( "old" );
- $old = $olds->item(0)->nodeValue;
- echo "$name - $sex - $oldn";
- }
- ?>
<?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
- <?php
- $xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中
- foreach($xml_array as $tmp){
- echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>";
- }
- ?>
3)用php正则表达式来记取数据
- <?php
- $xml = "";
- $f = fopen('person.xml', 'r');
- while( $data = fread( $f, 4096 ) ) {
- $xml .= $data;
- }
- fclose( $f );
- // 上面读取数据
- preg_match_all( "/<humans>(.*?)</humans>/s", $xml, $humans ); //匹配最外层标签里面的内容
- foreach( $humans[1] as $k=>$human )
- {
- preg_match_all( "/<name>(.*?)</name>/", $human, $name ); //匹配出名字
- preg_match_all( "/<sex>(.*?)</sex>/", $human, $sex ); //匹配出性别
- preg_match_all( "/<old>(.*?)</old>/", $human, $old ); //匹配出年龄
- }
- foreach($name[1] as $key=>$val){
- echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ;
- }
- ?>
4)xmlreader来读取xml数据
- <?php
- $reader = new XMLReader();
- $reader->open('person.xml'); //读取xml数据
- $i=1;
- while ($reader->read()) { //是否读取
- if ($reader->nodeType == XMLReader::TEXT) { //判断node类型
- if($i%3){
- echo $reader->value; //取得node的值
- }else{
- echo $reader->value."<br>" ;
- }
- $i++;
- }
- }
- ?>
解析XML数据,必看的更多相关文章
- 解析xml数据存入bean映射到数据库的 需求解决过程
解析xml数据存入bean映射到数据库的 需求解决过程2017年12月19日 15:18:57 守望dfdfdf 阅读数:419 标签: xmlbean 更多个人分类: 工作 问题编辑版权声明:本文为 ...
- iOS解析XML数据
iOS中解析XML数据的类是 NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSX ...
- Android网络之数据解析----SAX方式解析XML数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- 160928、JQuery解析XML数据的demo
用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 方案1 当后台返回的数据类型是xml对象 ...
- 【iOS-cocos2d-X 游戏开发之九】Cocos2dx利用CCSAXParser解析xml数据&CCMutableDictionary使用与注意!
本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/694.html ☞ ...
- JQuery解析XML数据的几个例子
用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 第一种方案: <script ty ...
- (四)SAX方式解析XML数据
SAX方式解析XML数据 文章来源:http://www.cnblogs.com/smyhvae/p/4044170.html 一.XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程 ...
- 导入libxml.dylib用Google的GDataXML解析XML数据
1.用Google的GDataXML来解析XML数据,导入libxml.dylib 2.导入libxml.dylib的操作实现,一开始自己总是找不到libxml.dylib文件. 选择其他文件,到路径 ...
- 【Android Developers Training】 81. 解析XML数据
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 使用dom4j中SAXReader解析xml数据
public ApiConfig(String configFilePath) throws DocumentException{ SAXReader reader = new SAXReader() ...
随机推荐
- drf框架安装配置及其功能概述
0902自我总结 drf框架安装配置及其功能概述 一.安装 pip3 install djangorestframework 二.配置 # 注册drf app NSTALLED_APPS = [ # ...
- Web安全之url跳转漏洞及bypass总结
0x01 成因 对于URL跳转的实现一般会有几种实现方式: META标签内跳转 javascript跳转 header头跳转 通过以GET或者POST的方式接收将要跳转的URL,然后通过上面的几种方式 ...
- pdfminer API介绍:pdf网页爬虫
安装 pip install pdfminer 爬取数据是数据分析项目的第一个阶段,有的加密成pdf格式的文件,下载后需要解析,使用pdfminer工具. 先介绍一下什么是pdfminer 下面是官方 ...
- [UWP]使用CompositionLinearGradientBrush实现渐变画笔并制作动画
1. 什么是 CompositionBrush CompositionBrush(合成画笔)是操作可视化层时用于绘制 SpriteVisual 区域的画笔. 使UWP 应用时可以选择使用 XAML 画 ...
- (转载)linux命令-sed
原文地址:https://www.cnblogs.com/zhangzongjian/p/10708222.html
- java集合第一节,List简单介绍
Java中List集合的常用方法 List接口是继承Collection接口,所以Collection集合中有的方法,List集合也继承过来. package 集合; import java.ut ...
- 百万年薪python之路 -- 字典(dict)
1.字典(dict)-- dict关键字 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 字典中逗号分隔叫作一个元素 字典是无序的 key必须是不可变 ...
- python中基本的数据类型
基本数据类型 数据:描述衡量数据的状态 类型:不同的事物需要不同的类型存储 整型 int 定义:年龄,手机号码等是整数的数字 字符串b转化为整型b = '12'print(type(b))b = i ...
- class样式的添加和设置.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue 列表的排序过渡 shuffle遇到的问题
内部的实现,Vue 使用了一个叫 FLIP 简单的动画队列使用 transforms 将元素从之前的位置平滑过渡新的位置 需要注意的是使用 FLIP 过渡的元素不能设置为 display: inlin ...