这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 读取 XML 的常见方法, 结合实例形式总结了 php 基于 DOMDocument、simplexml、正则及 xmlreader 读取 xml 文件的相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 php 读取 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( "humans" ); //取得humans标签的对象数组
- foreach( $humans as $human )
- {
- $names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组
- $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
- $sexs = $human->getElementsByTagName( "sex" );
- $sex = $sexs->item(0)->nodeValue;
- $olds = $human->getElementsByTagName( "old" );
- $old = $olds->item(0)->nodeValue;
- echo "$name - $sex - $old\n";
- }
- ?>
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=f open( 'person.xml', 'r'); while( $data=f read( $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++;
- }
- }
- ?>
希望本文所述对大家 PHP 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0806/340109.html