一什么是xmlxml有什么用途
XML(Extensible Markup Language)即可扩展标记语言它与HTML一样都是SGML(Standard Generalized Markup Language标准通用标记语言)Xml是Internet环境中跨平台的依赖于内容的技术是当前处理结构化文档信息的有力工具扩展标记语言XML是一种简单的数据存储语言使用一系列简单的标记描述数据而这些标记可以用方便的方式建立虽然XML占用的空间比二进制数据要占用更多的空间但XML极其简单易于掌握和使用
XML的用途很多可以用来存储数据可以用来做数据交换为很多种应用软件提示数据等等
二php读取xml的方法
xml源文件
代码如下:
<?xml version=" encoding="UTF"?>
<humans>
<zhangying>
<name>张映</name>
<sex>男</sex>
<old></old>
</zhangying>
<tank>
<name>tank</name>
<sex>男</sex>
<old></old>
</tank>
</humans>
)DOMDocument读取xml
代码如下:
<?php
$doc = new DOMDocument();
$doc>load(personxml); //读取xml文件
$humans = $doc>getElementsByTagName( "humans" ); //取得humans标签的对象数组
foreach( $humans as $human )
{
$names = $human>getElementsByTagName( "name" ); //取得name的标签的对象数组
$name = $names>item()>nodeValue; //取得node中的值如<name> </name>
$sexs = $human>getElementsByTagName( "sex" );
$sex = $sexs>item()>nodeValue;
$olds = $human>getElementsByTagName( "old" );
$old = $olds>item()>nodeValue;
echo "$name $sex $oldn";
}
?>
)simplexml读取xml
代码如下:
<?php
$xml_array=simplexml_load_file(personxml); //将XML中的数据读取到数组对象中
foreach($xml_array as $tmp){
echo $tmp>name""$tmp>sex""$tmp>old"<br>";
}
?>
)用php正则表达式来记取数据
代码如下:
<?php
$xml = "";
$f = fopen(personxml r);
while( $data = fread( $f ) ) {
$xml = $data;
}
fclose( $f );
// 上面读取数据
preg_match_all( "/<humans>(*?)</humans>/s" $xml $humans ); //匹配最外层标签里面的内容
foreach( $humans[] 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[] as $key=>$val){
echo $val" "$sex[$key][]" "$old[$key][]"<br>" ;
}
?>
)xmlreader来读取xml数据
代码如下:
<?php
$reader = new XMLReader();
$reader>open(personxml); //读取xml数据
$i=;
while ($reader>read()) { //是否读取
if ($reader>nodeType == XMLReader::TEXT) { //判断node类型
if($i%){
echo $reader>value; //取得node的值
}else{
echo $reader>value"<br>" ;
}
$i++;
}
}
?>
三小结
读取xml的方法很多简单举几个上面四种方法都是可以把标签中的数据读出来张映但是他们的测重点不同前三种方法的读取xml的function的设计重点是为了读取标签中的值相当于jquery中的text()方法而xmlreader呢他就不太一样他的重点不在读取标签中的值而读取标签的属性把要传送的数据都放在属性中(不过我上面写的那个方法还是取标签中的值因为xml文件已经给定了我就不想在搞xml文件出来了)
举个例子解释一下
<data name=张映 sex=男 old=′></data>
xmlreader的设计重点是为了读data里面的name sex old的值而读取的内容就比较麻烦了他相当于jquery中attr(”);这个东西