1

我正在处理一些包含和/或标签的 xml 文件。我想将它们转换为 html。在我的 XSL 中,我使用了两个模板

<xsl:template match="and">
    (
    <xsl:apply-templates select="./*[1]" />
    <xsl:text> </xsl:text>
    <xsl:value-of select="name(.)" />
    <xsl:text> </xsl:text>
    <xsl:apply-templates select="./*[2]" />
    )
</xsl:template>
<xsl:template match="or">
    (
    <xsl:apply-templates select="./*[1]" />
    <xsl:text> </xsl:text>
    <xsl:value-of select="name(.)" />
    <xsl:text> </xsl:text>
    <xsl:apply-templates select="./*[2]" />
    )
</xsl:template>

它在我使用 Xalan 作为处理器时有效,但是当我使用 JAXPSAXProcessor 时出现错误:ERROR [main] JAXPSAXProcessorInvoker - 'or' 中的语法错误。错误 [main] JAXPSAXProcessorInvoker - 'and' 中的语法错误。

我想 JaxPSaxProcessor 翻译和/或 Xpath 中的运算符。 在这里你可以看到运算符列表 我不能更改 jaxb 处理器,因为它已在很多地方使用过。还有其他解决问题的建议吗?

4

1 回答 1

1

如果 XSLT 处理器有那么大的缺陷,您可以尝试使用多种技术来欺骗它,例如:

<xsl:template match="*[name()=concat('a', 'nd')">

或者

<xsl:template match="*[name()=substring('land',2)">

祝你好运。

于 2011-01-25T14:11:50.327 回答