XML格式文件解析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/momDIY/article/details/53788586
对于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结束节点,保证每次读到的都是开始节点
	}
?>

以上代码纯手打。。。。运行结果如下



展开阅读全文

没有更多推荐了,返回首页