这项技术仍然很受欢迎吗?
我想创建一个自动转换XSLT文件的网站。它应该像这样工作: 当用户访问该站点时,单个处理程序将接受他的请求,然后为其找到合适的XML(根据请求的URL)并使用其附加的XSL文件对其进行转换。
我想这样做是为了便于使用纯XML文件更新网站(而不是使用完整且昂贵的CMS系统)。
你怎么说?好主意?馊主意?有人有推荐吗?
谢谢!
答案 0 :(得分:24)
早在2002 - 2003年,我在XSLT上做了很多工作(2006 - 2007年还有更多)。你的里程数会有所不同,但老实说,我会避免它,原因如下:
现在我唯一真正看到拥有XSLT应用程序的地方就是消费生成XML的Web服务(这些天很多产生JSON和更容易使用的格式)。
即使在这种情况下,我仍然可能会使用Java中的JAXB(或其他语言中的类似技术)直接操作XML。
更新:我刚遇到The Death of XSLT in Web Frameworks。例如:
例如:如何隐藏行 table(使用不同的CSS样式), 基于一些条件,使用XSLT? 参见:
<tr> <xsl:attribute name="style"> <xsl:choose> <xsl:when test="CONDITION"> <xsl:value-of select="'visibility: visible'"> </xsl:when> <xsl:otherwise> <xsl:value-of select="'visibility: collapse'"> </xsl:otherwise> </xsl:choose> </xsl:attribute> ... </tr>
现在与JSP 1.x相同:
<tr style='visibility:<%=CONDITION ? "collapse" : "visible"%>'> ... </tr>
或使用JSP 2.x:
<tr style='visibility:${CONDITION ? "collapse" : "visible"}'> ... </tr>
总结如下:
因此,如果您开始新项目,请在跳入XSLT之前三思而后行(或十次)。并且&gt;如果您使用Eclipse,您甚至可以在使用JSP / JSTL之前三思而后行。速度或> FreeMarker可能是更好的选择。
答案 1 :(得分:20)
基于“语法很难”的答案根本就没有答案。一个)。它真的不是,B)。你应该是一名程序员,只需要学习它。
绝对其他技术正在以XSLT自2005年以来的速度发展,但它仍然是一个强大的工具,它提供了一个抽象级别,比如asp.net webforms没有,并允许你提供一般可扩展的解决方案,可轻松地串行化为一系列输出格式。使用任何给定的语言生成HTML很容易,现在很难将其扩展到XML,现在将其扩展为JSON,现在将其扩展为CSV。
在一个仍然受I / O约束的环境中,缓存变换足够快。
OTOH,在XML中存储数据通常不是一个好主意。出于上述所有原因,最好存储在DB / mem和序列中。答案 2 :(得分:4)
在工作中,我正在使用的项目使用XSLT,说实话,这真的很痛苦。实际的XSLT文件并不难以使用,但必须创建XML会增加额外的复杂性。我还发现,除了最基本的页面之外,XML往往变得非常臃肿和混乱。所以,不,我不推荐它。
答案 3 :(得分:3)
我知道在波兰这里使用XSLT很少的大型门户网站。他们之所以使用,是因为它可以最大限度地减少通过网络发送的数据量。
我还参与了该项目(Huge HRM应用程序),我们在那里使用它将我们的编程语言转换为.NET。
我想说它有时非常有用。
答案 4 :(得分:2)
XSLT只是一种模板方法。它也只是一个完整的MVC框架的一部分,其中模板是View组件。 XSLT是一项很棒的技术,但它很慢,并不是构建可扩展网站的首选。
研究MVC框架,看看哪一个最适合你。例如ASP.NET MVC,Ruby on Rails,CakePHP,Catalyst等。
答案 5 :(得分:2)
呃,什么?有许多免费和开源的CMS。我想这样做是为了便于使用纯XML文件更新网站(而不是使用完整且昂贵的CMS系统)。
spoulson上面提到的关于模板的内容是重点。从输入XML文件提供输出页面很好。但这不会让你成为CMS。 C.R.U.D.怎么样?搜索?页面列表?
如果您的网站太小,以至于您可以通过手动编辑某些XML文件来完成所有相关更新,那么为什么不这样做呢?但如果它很简单,你也可以手工编辑HTML。
答案 6 :(得分:2)
我喜欢这个主意。 XSL是一个很棒的工具,但在你意识到它真正有用之前,你必须拥有这个特殊的启蒙时刻。在此之前它似乎是如此。
我在各种应用程序中使用过XSL,这为我节省了很多时间。但显然不要只是为了它而使用它。
答案 7 :(得分:2)
您所描述的内容已经存在,并且是Apache Cocoon:http://cocoon.apache.org/
答案 8 :(得分:2)
xslt很难?
解决复杂问题和复杂标准是程序员的工作。有些东西更难,仍然需要。只要继续坚持下去,每次你需要学习新东西时都会变得更容易。
Xslt很简单。
真!有好书可以教你xslt。只需了解例如rdf / owl(w3c标准),它仍然可以变得更加复杂......
xslt很慢?如果可以,只需使用正确的缓存。 (好吧,它并不总是可能......)。
关于REST(一些书或Roy Fielding论文),这也是必不可少的东西。
现在有了XProc(xslt piplines)和一个围绕calabash(Xproc实现)的小型restserver,你可以存档很多。它可以绝对节省您的时间。任何数据都可以导出到XML,通过REST提供,并使用XProc进行转换。
答案 9 :(得分:2)
Symphony CMS使用XSLT。使用该CMS时,我发现我遇到的唯一真正的问题是学习XSL / XPath语法,主要是由于缺乏良好的教程/文档。如果你想看一些相对现代的XSLT用法,可能值得试试Symphony。
答案 10 :(得分:1)
查看http://www.umbraco.org/这是一个免费的开源CMS工具,它广泛使用XSLT来生成页面。
对于那些声称XSLT很难的人,我会说它并不比SQL更难。有一些场景很难分组,就像SQL树很难一样。
为正确的工作选择合适的工具,你不应该有任何问题。
答案 11 :(得分:1)
如果您的平台是ASP.NET,请查看myxsl
XSLT使您能够进行不显眼的模板化,这是IMO最终的模板。
答案 12 :(得分:1)
作为旁注,wowarmory.com是使用XSLT的高流量网站的一个很好的例子。事实上,我认为整个网站都使用它。
答案 13 :(得分:0)
对我来说听起来不错。使用某些东西要容易得多 像ASP.NET一样存储内容 在数据库中 - 然后您可以更新 内容直接进入 数据库 - 本身就是这样 比编辑XML更容易。