0

メインのxslがあり、以下に示すように2つの異なるxslの個別の参照が含まれていますが、変換すると例外がスローされるという問題があります

メインの xsl が適切に形成されているか、何か不足していることをお知らせください..

    <xsl:import href="qwe.xsl"/>
    <xsl:import href="qrt.xsl"/>

    <xsl:template match="/abml">
        <cfabcmessage>
            <defflows>
                <xsl:variable name="ttSystem">
                    <xsl:call-template name=ttSystem_template"/>
                </xsl:variable>
                <xsl:choose>
                    <xsl:when test="ttSystem = 'ABC'">
                        <xsl:call-template name="dgddsh_ABC"/>
                    </xsl:when>
                        <xsl:call-template name="hjsgscjkd_DEG"/>
                </xsl:choose>
            </defflows>
        </cfabcmessage>
    </xsl:template>
</xsl:stylesheet>

私は修正を行いましたが、変換時にまだこのエラーが発生しています..

21:03:34,892 ERROR [main] JAXPSAXProcessorInvoker  - xsl:when is not allowed in this position in the stylesheet!;
4

3 に答える 3

1

の前に二重引用符がttSystem_templateありませんでした。また、 の終わりと のxsl:call-template終わりの間に がありました。(1) 内、(2) 内、または (3) の外に移動します。(開始タグも欠落していましたが、それはおそらく単なるコピー アンド ペースト エラーでした。)xsl:whenxsl:choosexsl:call-templatexsl:whenxsl:otherwisexsl:choosexsl:stylesheet

XSLT の完全な修正済みコピーを次に示します。

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="qwe.xsl"/>
  <xsl:import href="qrt.xsl"/>

  <xsl:template match="/abml">
    <cfabcmessage>
      <defflows>
        <xsl:variable name="ttSystem">
          <xsl:call-template name="ttSystem_template"/>
        </xsl:variable>
        <xsl:choose>
          <xsl:when test="ttSystem = 'ABC'">
            <xsl:call-template name="dgddsh_ABC"/>
            <!-- 1. Want call to hjsgscjkd_DEG it here? -->
            <xsl:call-template name="hjsgscjkd_DEG"/>
          </xsl:when>
            <!-- XXX  Call to hjsgscjkd_DEG cannot go here. -->
          <xsl:otherwise>
            <!-- 2. Want call to hjsgscjkd_DEG it here? -->
            <xsl:call-template name="hjsgscjkd_DEG"/>
          </xsl:otherwise>
        </xsl:choose>
        <!-- 3. Want call to hjsgscjkd_DEG it here? -->
        <xsl:call-template name="hjsgscjkd_DEG"/>
      </defflows>
    </cfabcmessage>
  </xsl:template>
</xsl:stylesheet>
于 2013-10-23T16:04:01.627 に答える
1

name 属性の次の行に二重引用符がありません:

<xsl:call-template name="ttSystem_template"/>

最初の行を省略したかどうかはわかりませんが、次のようなものも必要になります。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
于 2013-10-23T14:52:02.333 に答える