如何使用Jre默认处理器(JAXPSAXProcessor)</或> </和>获取XPath中的元素<和>和<或>

时间:2011-01-25 12:38:50

标签: java xpath xslt jaxp

我正在处理一些包含和/或标记的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时,我会收到错误:  错误[main] JAXPSAXProcessorInvoker - '或'中的语法错误。 错误[main] JAXPSAXProcessorInvoker - '和'中的语法错误。

我认为JaxPSaxProcessor转换和/或转换为Xpath中的运算符。 here you can see the list of operators 我无法更改jaxb处理器,因为它已在很多地方使用过。还有其他的解决问题吗?

1 个答案:

答案 0 :(得分:1)

如果XSLT处理器那个错误,您可以尝试使用多种技术来欺骗它,例如:

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

<xsl:template match="*[name()=substring('land',2)">
祝你好运。