2011-02-23 55 views
0

下面提到的XSLT代碼在java1.5中正常工作,但在java1.6中失敗。我在java1.6中看不到任何圖像java1.6的XSL處理問題

有人可以爲此提供解決方案嗎?

<xsl:template match="item" mode="item-image"> 
    <xsl:param name="moduleParams"/> 
    <xsl:call-template name="aBuilder"> 
     <xsl:with-param name="linkContent"> 
      <xsl:apply-templates select="images" mode="item"> 
       <xsl:with-param name="moduleParams" select="$moduleParams"/> 
      </xsl:apply-templates> 
     </xsl:with-param> 
    </xsl:call-template> 
</xsl:template> 

<xsl:template match="images" mode="item"> 
    <xsl:param name="moduleParams"/> 
    <!-- SOME OTHER CODE GOES HERE --> 
    <xsl:apply-templates select="img" mode="item-image"/> 
</xsl:template> 

<xsl:template match="img" mode="item-image"> 
    <xsl:variable name="class"> 
     <xsl:text>dummyclass</xsl:text> 
    </xsl:variable> 

    <span class="{$class}"> 
     <img src="{@src}" width="{@width}" height="{@height}"/> 
    </span> 
</xsl:template> 

結果HTML

<span> 
    <img> 
</span> 

預計的HTML

<span class="dummyclass"> 
    <img src="dummysrc" width="dummywidth" height="dummyheight"/> 
    </span> 

爲什麼當我使用java1.6跨度和圖像元素屬性不來?但是,當我使用java1.5時它工作正常。

在此先感謝

+0

如果您希望我們幫助調查問題,您可能需要發佈最少但完整的XML輸入示例,XSLT樣式表和Java代碼以執行樣式表。或者考慮用Java 1.6嘗試你的代碼,但使用像Saxon這樣的XSLT處理器(http://www.saxonica.com/documentation/using-xsl/embedding.xml)來檢查是否給出你想要的結果。即使是來自apache.org的最新Xalan測試也可能會有更好的結果。 – 2011-02-23 11:11:44

+0

如何知道沒有輸入樣本和完整的內容模板? – 2011-02-23 12:33:45

回答

1

我通常懷疑有這樣那樣的問題是,它是在JDK 1.6中的XML解析器 - 它有一些非常奇怪的錯誤,也沒有人似乎有意將它們固定。因此,從JDK解析器切換到Apache Xerces比從Xalan切換到Saxon更可能解決這個問題 - 但這只是一個猜測。

+0

感謝您的回覆邁克爾。我如何從jdk解析器切換到Apache xerces。是否有任何特定步驟要遵循 – 2011-02-23 12:05:05

+0

此引用可能會告訴您比您需要知道的更多,但它應該有用:http://people.apache.org/~edwingo/jaxp-faq.html – 2011-03-04 14:38:27