2011-02-23 53 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