java1.6的XSL处理问题

时间:2011-02-23 10:10:02

标签: xslt

下面提到的XSLT代码在java1.5中工作正常但在java1.6中失败。我在java1.6

中看不到任何图像

有人可以为此提供解决方案吗?

<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时,span和image元素属性不会出现?但是当我使用java1.5时,它工作正常。

提前致谢

1 个答案:

答案 0 :(得分:1)

我对这类问题的常见怀疑是它是JDK 1.6中的XML解析器 - 它有一些非常奇怪的错误,没有人似乎对修复它们感兴趣。因此,从JDK解析器切换到Apache Xerces可能比从Xalan切换到Saxon更有可能解决它 - 但这只是猜测。