xsl调用java方法传参_Java中的XSL转换:一种简单的方法
xsl調用java方法傳參
XSL轉換 (XSLT)是將一個XML文檔轉換為另一個XML文檔的強大機制。 但是,在Java中,XML操作相當冗長和復雜。 即使是簡單的XSL轉換,也必須編寫幾十行代碼—如果需要適當的異常處理和日志記錄,甚至可能還要寫更多的代碼。 jcabi-xml是一個小型開放源代碼庫,它通過使用一些簡單的方法啟用XML解析和XPath遍歷,使生活變得更加輕松。 讓我們看看該庫如何幫助XSL轉換。
首先,看一個實際的示例— rultor.com —一個托管的DevOps助手,該助手可以自動執行發布,合并和部署操作。 Rultor在DynamoDB記錄中與最終用戶保持每次對話會話(也稱為“對話”)。 每次談話有多種情況需要處理。 這就是為什么使用記錄的多列實際上不可行的原因。 相反,我們只將每個對話的幾個參數保留在記錄列中(例如ID和名稱),并將所有其余參數放在一個XML列中。
這大約是我們的DynamoDB表的外觀:
+----+---------------+--------------------------------------+ | id | name | xml | +----+---------------+--------------------------------------+ | 12 | jcabi-xml#54 | <?xml version='1.0'?> | | | | <talk public="true"> | | | | <request id="e5f4b3">...</request> | | | | </talk> | +----+---------------+--------------------------------------+ | 13 | jcabi-email#2 | <?xml version='1.0'?> | | | | <talk public="true"> | | | | <daemon id="f787fe">...</daemon> | | | | </talk> | +----+---------------+--------------------------------------+用戶將@rultor status到Github票證后,Rultor必須回答有關當前談話的完整狀態報告。 為了創建這樣的文本答案(普通用戶不會喜歡XML響應),我們必須從必要的DynamoDB記錄中獲取該xml列,并將其轉換為純英文文本。
這是我們在jcabi-xml及其類XSLDocument的幫助下進行的 XSLDocument 。
final String xml = // comes from DynamoDB final XSL xsl = new XSLDocument(this.getClass().getResourceAsStream("status.xsl") ); final String text = xsl.applyTo(xml);而已。 現在,讓我們看看status.xsl文件中的內容(這只是它的框架;完整版本在這里 ):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"><xsl:output method="text"/><xsl:template match="/talk"><xsl:text>Hi, here is your status report:</xsl:text>...</xsl:template><xsl:template match="node()|@*"><xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy></xsl:template> </xsl:stylesheet>優良作法是每個應用程序運行僅創建一次XSL文檔。 我們有一個靜態實用程序方法XSLDocument.make() :
final class Foo {private static final XSL STYLESHEET = XSLDocument.make(Foo.class.getResourceAsStream("stylesheet.xsl"));public XML style(final XML xml) {return Foo.STYLESHEET.transform(xml);} }請注意我們正在使用XSLT 2.0的事實。 XSLT的內置Java實現不支持2.0版,為了使其運行,我們使用了以下兩個Maven Saxon依賴項:
<dependency><groupId>net.sourceforge.saxon</groupId><artifactId>saxon</artifactId><version>9.1.0.8</version><scope>runtime</scope> </dependency> <dependency><groupId>net.sourceforge.saxon</groupId><artifactId>saxon</artifactId><version>9.1.0.8</version><classifier>xpath</classifier><scope>runtime</scope> </dependency>開始使用jcabi-xml進行XSL轉換所需要做的就是將此依賴項添加到pom.xml :
<dependency><groupId>com.jcabi</groupId><artifactId>jcabi-xml</artifactId> </dependency>如果您有任何問題或建議,請隨時向Github 問題跟蹤器提交問題 。
翻譯自: https://www.javacodegeeks.com/2015/02/xsl-transformation-java-easy-way.html
xsl調用java方法傳參
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的xsl调用java方法传参_Java中的XSL转换:一种简单的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (2018ddos破解软件)
- 下一篇: 单例嵌套 ios_嵌套类型的前5个用例