2013-10-09 100 views
0

我有一個xsl文件,用作模板,我需要在運行時修改它。我需要修改標籤的屬性值。有沒有辦法通過JAVA代碼做到這一點?我知道我的模板xsl文件的位置。如何從Java編輯xsl標記屬性文件

例如:

示例XSL模板:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0" 
xmlns:xalan="http://xml.apache.org/xslt"> 
<xsl:template match="Sample"> 
<HTML> 
<HEAD> 
</HEAD> 
<BODY > 
<APPLET ARCHIVE="http://localhost:500/abc.jar" CODE="test.class" NAME="Apps" ></APPLET> 
</BODY> 
</HTML> 
</xsl:template> 
</xsl:stylesheet> 

在這裏,我需要修改APPLET標籤,在這裏我需要在運行時設置存檔值,說是"http://localhost:800/xyz.jar"

我可以從Java somwhow中讀取這個xsl文件並修改applet標籤的atrribute嗎?

+0

因爲xsl只是xml,你可以編輯它作爲任何xml在java中http://stackoverflow.com/questions/7646607/how-to-modify-xml-tag-specific-value-in-java – Piro

+0

@Piro動態編輯樣式表是不對的。 – Tomalak

回答

1

使用XSL paramteter轉移就如何通過在你的XSLT引擎XSL參數來提升價值

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xalan="http://xml.apache.org/xslt" 
> 
    <xsl:param name="archive" select="''" /> 

    <xsl:output method="html" indent="yes" /> 

    <xsl:template match="Sample"> 
    <html> 
     <head /> 
     <body> 
     <applet archive="{$archive}" code="test.class" name="Apps" /> 
     </body> 
    </html> 
    </xsl:template> 
</xsl:stylesheet> 

。撒克遜人會使用XsltTransformer.SetParameter method,其他引擎的工作方式相似。

順便說一下,ALL UPPERCASE HTML最後在90年代使用。

+0

感謝Tomalak,會嘗試這種方法。 – Archiekins