首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

在IntelliJ中运用XSLT2.0

2012-06-27 
在IntelliJ中使用XSLT2.0IntelliJ从10.5开始支持XSLT2.0,不过需要在项目中添加Saxon的库,本文介绍配置过程

在IntelliJ中使用XSLT2.0
IntelliJ从10.5开始支持XSLT2.0,不过需要在项目中添加Saxon的库,本文介绍配置过程。

首先是下载IntelliJ社区版:

http://www.jetbrains.com/idea/



下载完成后,启动IntelliJ,创建新项目:



选择"Create project from scratch":



将项目命名为xslt2demo:



最后点Finish:



这样就新建了一个名为xslt2demo的项目,接下来新建两个文件,分别为demo.xsl和text.xml:











text.xml的文件内容为:

<?xml version="1.0"?><PLAY>    <TITLE>The Tragedy of Othello, the Moor of Venice</TITLE>    <TEXT>        <P>ASCII text placed in the public domain by Moby Lexical Tools, 1992.</P>        <P>SGML markup by Jon Bosak, 1992-1994.</P>        <P>XML version by Jon Bosak, 1996-1999.</P>        <P>The XML markup in this version is Copyright &#169; 1999 Jon Bosak.            This work may freely be distributed on condition that it not be            modified or altered in any way.        </P>    </TEXT></PLAY>


demo.xsl:

<?xml version="1.0" encoding="iso-8859-1"?><xsl:stylesheet        version="2.0"        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    <xsl:output method="xml" indent="yes"/>    <xsl:template match="/">        <wordcount>            <xsl:for-each-group group-by="."                                select="for $w in //text()/tokenize(., '\W+')[.!=''] return lower-case($w)">                <xsl:sort select="count(current-group())" order="descending"/>                <word word="{current-grouping-key()}"                      frequency="{count(current-group())}"/>            </xsl:for-each-group>        </wordcount>    </xsl:template></xsl:stylesheet>


这个xsl将用来生成对text.xml的字母统计报告, 里面用到了XPATH 2.0语法,此时我们用IntelliJ来执行试试看:



第一次执行时,需要设置关联的xml:



执行后查看终端输出:



发现IntelliJ报错,不支持XSLT 2.0的语法:

Unsupported XSL element 'http://www.w3.org/1999/XSL/Transform:for-each-group


接下来我们需要下载Saxon,用于支持XSLT2.0:

http://sourceforge.net/projects/saxon/files/Saxon-HE/9.4/



下载名为"SaxonHE9-4-0-3J.zip"的文件。其中J代表为Java包。下载后解压,包含两个文件:



我们要将saxon9he.jar加入到IntelliJ中的项目依赖中去。打开项目的设置:



选择Modules -> Dependencies -> Add -> Single-Entry Module Library



然后选择saxon9he.jar:



加入依赖后,重新执行demo.xsl:



执行输出如下:



此时查看XSLT Output:



可以看到处理结果。

参考资料

[1] http://blogs.jetbrains.com/idea/2011/09/xslt-20-in-idea-105/

[2] http://p2p.wrox.com/xslt/80731-grouping-xslt-report.html

[3] http://stackoverflow.com/questions/3765998/add-a-properties-file-to-intellijs-classpath

[4] XSLT 2.0 and XPath 2.0 Programmer's Reference (Programmer to Programmer) - http://www.amazon.com/XSLT-XPath-Programmers-Reference-Programmer/dp/0470192747/ref=sr_1_1?ie=UTF8&qid=1338605274&sr=8-1

热点排行