PHP使用XSL stylesheets解析转换XML文件
PHP与XSL stylesheets相结合来处理XML文档,似乎大家不常用,不过这却是一个很有用的技巧,在众多大型php web应用中,你肯定见到过与XSL stylesheets结合的例子,只是你可能不知道那是什么玩意,今天通过一个简单的例子,让你对PHP使用XSL stylesheets解析转换XML文档有一个大致的了解。
在开始之前,我们先准备两个XML文档,之后会将第一个XML文档输入XSL解析器。同时,第二个XSL文档中的XSL stylesheet也会被输入XSL解析器。
XML文档:文件名:order.xml
<?xml version="1.0" ?> <Order> <Account>9900234</Account> <Item id="1"> <SKU>1234</SKU> <PricePer>5.95</PricePer> <Quantity>100</Quantity> <Subtotal>595.00</Subtotal> <Description>Super Widget Clamp</Description> </Item> <Item id="2"> <SKU>6234</SKU> <PricePer>22.00</PricePer> <Quantity>10</Quantity> <Subtotal>220.00</Subtotal> <Description>Mighty Foobar Flange</Description> </Item> <Item id="3"> <SKU>9982</SKU> <PricePer>2.50</PricePer> <Quantity>1000</Quantity> <Subtotal>2500.00</Subtotal> <Description>Deluxe Doohickie</Description> </Item> <Item id="4"> <SKU>3256</SKU> <PricePer>389.00</PricePer> <Quantity>1</Quantity> <Subtotal>389.00</Subtotal> <Description>Muckalucket Bucket</Description> </Item> <NumberItems>1111</NumberItems> <Total>3704.00</Total> <OrderDate>07/07/2002</OrderDate> <OrderNumber>8876</OrderNumber> </Order>
XSL文档:文件名:order.xsl
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="column" select="'SKU'"/>
<xsl:param name="order" select="'ascending'"/>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates select="Order">
<xsl:with-param name="sortcolumn" select="$column" />
<xsl:with-param name="sortorder" select="$order" />
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="Order">
<xsl:param name="sortcolumn" />
<xsl:param name="sortorder" />
<table border="1">
<tr>
<th>Account</th>
<th>SKU</th>
<th>Description</th>
<th>Price</th>
<th>Quantity</th>
<th>Subtotal</th>
</tr>
<xsl:apply-templates select="Item">
<xsl:sort select="*[name()=$sortcolumn]" order="{$sortorder}" />
</xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="Item">
<tr>
<td><xsl:value-of select="../Account" /></td>
<td><xsl:value-of select="SKU" /></td>
<td><xsl:value-of select="Description" /></td>
<td><xsl:value-of select="PricePer" /></td>
<td><xsl:value-of select="Quantity" /></td>
<td><xsl:value-of select="Subtotal" /></td>
</tr>
</xsl:template>
</xsl:stylesheet>下面是PHP通过XSL stylesheets来处理XML文档的代码演示,结合以上给出的XML和XSL文档代码,XML文档作为输入的XML文档,XSL文件则是XSL的输入文档,以下是PHP处理代码:
<?php
$xmlfile = "order.xml";
$xslfile = "order.xsl";
$args = array("column"=>"Quantity", "order"=>"descending");
$engine = xslt_create();//创建XSL引擎
$output = xslt_process($engine, $xmlfile, $xslfile, NULL, NULL, $args);//处理
print $output;//输出内容
xslt_free($engine);//关闭处理引擎
?>从上PHP代码主要是使用PHP的数组来存储名字对应参数,通过xslt_process函数将名字传递给XSL引擎。
一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com
