Как получить элементы <and>и <or>в XPath с процессором по умолчанию Jre (JAXPSAXProcessor) - PullRequest
1 голос
/ 25 января 2011

Я работаю с некоторыми 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 - Синтаксическая ошибка в 'или',ОШИБКА [main] JAXPSAXProcessorInvoker - Синтаксическая ошибка в 'и'.

Я полагаю, что JaxPSaxProcessor преобразуется и / или в операторы в Xpath. здесь вы можете увидеть список операторов Я не могу сменить процессор jaxb, потому что он использовался во многих местах.Есть ли другие способы решения проблемы?

1 Ответ

1 голос
/ 25 января 2011

Если процессор XSLT с ошибкой , вы можете попробовать обмануть его, используя ряд методов , таких как:

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

или

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

Удачи.

...