龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

使用SimpleXML处理XML

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
在开发Web应用时,为了减轻读写数据库的I/O开销,常常将一些配置信息存储在平面文件如:XML,json中,然后通过脚本语言如:PHP,javascript来操作这些文件。 br / PHP操作XML主要有两种方法
    在开发Web应用时,为了减轻读写数据库的I/O开销,常常将一些配置信息存储在平面文件如:XML,json中,然后通过脚本语言如:PHP,javascript来操作这些文件。
    PHP操作XML主要有两种方法:一种是通过DOM,另一种是通过SimpleXML。这两种方法解析XML的原理都是分析整个XML文档,并提供API来访问树中元素。SimpleXML是PHP 5新增的特性,目的是为了简便完成一些XML的常见处理任务。
    下面是一个简单示例,展示如何通过SimpleXML来格式化一组XML数据。

<?xml version="1.0" encoding="UTF-8"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<breakfast_menu>
	<food id="1">
		<name>Belgian Waffles</name>
		<price>$5.95</price>
		<description>two of our famous Belgian Waffles with plenty of real maple syrup</description>
		<calories>650</calories>
	</food>
	<food id="2">
		<name>Strawberry Belgian Waffles</name>
		<price>$7.95</price>
		<description>light Belgian waffles covered with strawberries and whipped cream</description>
		<calories>900</calories>
	</food>
	<food id="3">
		<name>Berry-Berry Belgian Waffles</name>
		<price>$8.95</price>
		<description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
		<calories>900</calories>
	</food>
</breakfast_menu>

2. [代码]使用SimpleXML处理XML     跳至 [1] [2] [全屏预览]

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>使用simpleXML处理XML</title>
</head>

<body>
<table border="1" cellpadding="0" cellspacing="0" width="700">
</tbody>
<tr bgcolor="green">
<th width="5%">&nbsp;</th>
<th width="20%">name</th>
<th width="10%">price</th>
<th width="55%">description</th>
<th width="10%">calories</th>
</tr>
<?php
	// 使用simpleXML处理XML

	$xml = simplexml_load_file('./simple.xml');
	//var_dump($xml);
	//echo $xml->getName();
	//var_dump($xml->children());
	$record = '';
	foreach ($xml->children() as $child)
	{
		$record .= '<tr><td>'. $child->attributes(). '</td>';
		foreach ($child->children() as $item)
		{
			//var_dump($child);
			$record .= '<td>'. $item .'</td>';
		}
		$record .= '</tr>';
	}
	echo $record;
?>
</tbody>
</table>
</body>
</html>

3. [图片] 格式化效果    

精彩图集

赞助商链接