我正在制作一个网页应用程序,其中的页面是xml,它们使用xslt样式表创建xhtml输出。XSLT主页?
因此,很多页面布局将包含在XSLT样式表中,从某种意义上说,XSLT表单包含有关页面布局的所有常用信息,是否可以创建一个用于xslt表单??基本上我会有一个生成xml的aspx页面,并包含另一个aspx页面,这是一个xslt页面,使用母版页插入页面上的任何内容更改[仅中间窗格]。
此外,您认为这是一个很好的设计策略吗?
我正在制作一个网页应用程序,其中的页面是xml,它们使用xslt样式表创建xhtml输出。XSLT主页?
因此,很多页面布局将包含在XSLT样式表中,从某种意义上说,XSLT表单包含有关页面布局的所有常用信息,是否可以创建一个用于xslt表单??基本上我会有一个生成xml的aspx页面,并包含另一个aspx页面,这是一个xslt页面,使用母版页插入页面上的任何内容更改[仅中间窗格]。
此外,您认为这是一个很好的设计策略吗?
我这样做是为了在以前的生活中的解决方案 - 更具体地说我一个人做的这一个公平块,我( - :
从根本上说,你只需要两样东西,XML和XSLT - 休息只是管道,可能不需要XSLT足以完成你想要的所有布局,所以它只是一个将XML连接到页面的问题
就XSLT而言,通过使用包含和通过使用在特定页面类型模板中定义/覆盖的模板来实现母版页类型的东西。
我们使用的方法是使用路由和早期MVC堆栈的其他元素 - 一点拉XML,一点拉XSLT,一点点代码将它们连接在一起,并将参数推入XSLT,最后只是推由此产生的HTML输出给客户端。
如果你有追逐,你会发现不同的人通过MVC的XML/XSLT视图引擎做了很多有趣的事情。
就“这是一个好方法”而言 - 它对我来说非常适合客户特定的CMS(运行单个生成的XML文件),并且从根本上说,Umbraco建立在使用XSLT来呈现XML的同一前提上(尽管随着剃刀向Umbraco的推出,情况有所改变)。
这就是我所说的“填空”技术,是的,它是一个非常好的设计模式,它允许分离呈现和处理逻辑,并能够有很多不同的输出格式,而无需更改转换。
下面是使用该技术的完整和非常短的例如:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="pMasterPage" select=
"'file:///c:/temp/delete17.xml'"/>
<xsl:variable name="vDoc" select="/"/>
<xsl:template match="node()|@*">
<xsl:param name="pInput"/>
<xsl:copy>
<xsl:apply-templates select="node()|@*">
<xsl:with-param name="pInput" select="$pInput"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates select="document($pMasterPage)/*">
<xsl:with-param name="pInput" select="$vDoc"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="first-name|last-name|age">
<xsl:param name="pInput"/>
<xsl:value-of select="$pInput/*/*[name()=name(current())]"/>
</xsl:template>
</xsl:stylesheet>
当在下面的XML文档施加这种转变:
<person>
<first-name>John</first-name>
<last-name>Smith</last-name>
<age>23</age>
<nationality>British</nationality>
</person>
并且如果文件:c:\temp\delete17.xm
l包含此文件:
<html>
<h1>Person:</h1>
<p>First Name: <first-name/></p>
<p>Last Name: <last-name/></p>
<p>Age: <age/></p>
</html>
然后以下结果产生:
<html>
<h1>Person:</h1>
<p>First Name: John</p>
<p>Last Name: Smith</p>
<p>Age: 23</p>
</html>
由浏览器显示为:
名字:约翰
姓:史密斯
年龄:23
为什么你会永远这样做事?这只是一个实验,看看是否有可能? – R0MANARMY 2011-05-09 18:38:30
因为我看到有一个纯XML的Web应用程序的好处。整个网站本质上是一个平台。 – Jordan 2011-05-09 18:55:53
...............? – 2011-05-09 20:48:35