对于XML代码解析速度相信大家都有过体验,非常之快,但是对于没有接触过XML的人来说可能不知道怎么下手,以下代码是一个关于PHP的XML代码解析,希望能够有小伙伴借这篇文章入门。
XML文本代码
<?xml version="1.0" encoding="utf-8"?>
<!--头部与xml中间不可以有多余空格;xml只有字符串一种数据类型-->
<novel>
<book>
<name>
金瓶梅
</name>
<price>
10
</price>
<author>
马拉多纳
</author>
</book>
<book>
<name>
西厢记
</name>
<price>
30
</price>
<author>
艾薇儿
</author>
</book>
<book>
<name>
坏蛋是怎样炼成的
</name>
<price>
50
</price>
<author>
艾尼尔
</author>
</book>
</novel>
用来解析PHP代码
<?php
class book{
public $name;
public $price;
public $author;
}
//创建xmlReader对象
$xml=new XMLReader();
//步骤二,打开指定文件
$xml->open("book.xml");
$books=array();//存储多个书本对象
//步骤三,开始解析
while($xml->read()){
if($xml->name=="name"){
//生成书本对象
$book=new book();
readval('name',$book);
}else if($xml->name == "price"){
readval('price',$book);
}else if($xml->name == "author"){
readval('author',$book);
// 数组中存储当前书本对象
array_push($books,$book);
}
}
foreach ($books as $book){
echo "name={$book->name},price={$book->price},author={$book->author}";
echo "<hr>";
}
function readval($xmlval,$book){
global $xml;
$xml->read();
$book->$xmlval = $xml->value;
$xml->read();
// 跳过name结束节点,保证每次读到的都是开始节点
}
?>
以上代码纯手打。。。。运行结果如下