
程序化的面向对象功能逻辑
LISPxslt 实例,XPath
Prolog,SQL,XSLT
XSLT是用于将XML转换为XML,HTML或纯文本的说明性语言. 通过在输入XML中进行模式匹配以选择输出内容模板来实现此转换. 关键是模式匹配,如图所示. 您无需编写命令,而需要编写模式. 有些模式匹配输入,有些模式用作输出模板.
显示用于匹配

<xsl:template match="item">
<li><a href="{link}"><xsl:value-of select="title"/></a></li>
</xsl:template> The
match属性指定用于匹配输入的模式,在本例中为
通常,开发人员会得到诸如“将这个RSS feed显示为超链接列表”之类的任务. 展示如何想象最终产品的外观.



但是,如果您现在就开始编写代码,您将遇到很多困难xslt 实例,就像使用套筒扳手拧紧不合适的螺母一样. 在开始编写代码之前,请务必确定两个问题:
对于输入,请考虑以下事项:
显示XML结构中的常用术语.



首先获取XML输入示例. 如果可能的话,还可以得到一个图案. 此模式提供有关所有可能的标记,属性值和XML文档结构(可能的元素和属性)的信息. 此示例输入文档对于编写匹配模式以及测试和调试XSLT非常重要. 例如,考虑使用所示的IBM®developerWorks®技术库RSS feed.
<?xml version="1.0"?> <rss version="2.0"> <channel> <title>IBM developerWorks : Technical library</title> <link>http://www.ibm.com/developerworks/</link> <description>The latest content from IBM developerWorks</description> <pubDate>27 Nov 2010 16:48:48 +0000</pubDate> <language>en</language> <copyright>Copyright 2004 IBM Corporation.</copyright> <image> <title>developerWorks</title> <url>http://www.ibm.com/developerworks/i/dwlogo-small.gif</url> <link>http://www.ibm.com/developerworks/</link> </image> <item> <title><![CDATA[IBM Cognos Proven Practices: Enterprise Planning - User Lockdown in DB2]]></title> <description><![CDATA[This document describes methods to limit database permission in DB2 for IBM Cognos Planning 8.]]></description> <link><![CDATA[http://www.ibm.com/developerworks/data/ library/cognos/infrastructure/databases/page535.html?ca=drs-]]></link> <pubDate>25 Nov 2010 05:00:00 +0000</pubDate> </item> <item> <title><![CDATA[Monitoring in DB2 9.7, Part 2: Relational access to XML event monitor data in DB2 9.7]]></title> <description><![CDATA[Learn how you can get relational access to the subset of monitor data that is captured in the form of an XML document by an activity or statistics event monitor in IBM DB2 for Linux, UNIX, and Windows Version 9.7 (DB2).]]></description> <link><![CDATA[http://www.ibm.com/developerworks/data/ library/techarticle/dm-1011db2mpart2/index.html?ca=drs-]]></link> <pubDate>24 Nov 2010 05:00:00 +0000</pubDate> </item> </channel> </rss>
充分了解您的输入后,您可以考虑所需的最终产品. 您可以考虑以下问题:
XSLT可以将一个或多个XML文档转换为以下格式之一:
设计输出时,请从其外观开始,然后进一步修改其代码. 例如,显示了超链接列表的HTML代码.
![]()
<html> <head><title>the title</title></head> <body> <ul> <li><a href="some-url">hyperlink text</a></li> <li><a href="some-url">hyperlink text</a></li> </ul> </body> </html>
确定输入和输出之后,就可以编写XSLT了. 如果大多数时候您都使用普通的编程语言,您可能会想: “好吧,我先写头,然后是for循环,以生成列表,然后是底部. ”不考虑模式. 输入元素
输出为HTML,因此添加
显示完整的XSLT.
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head><title>Zen of XSLT</title></head>
<body>
<ul>
<xsl:apply-templates select="rss/channel/item"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="item">
<li><a href="{link}"><xsl:value-of select="title"/></a></li>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
编写XSLT的重点是模式匹配,而不是函数调用. 必须解决两个问题:
弄清楚这些问题之后,可以编写XSLT模板以匹配输入和输出. 否则,您可能会想像使用带锤子的套筒扳手来敲击螺丝刀手柄,以松开螺栓的螺母.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-151815-1.html
土地谁说了算