0

xslを実行した後、エラーが発生します。

理由:xsl:template要素にxsl:template要素を含めることはできません。SystemID:file:/ C:/xslt/CombineToOutput.xsl; 行番号:19; 列番号:-1要素はスタイルシートのトップレベルでのみ使用する必要があります。SystemID:file:/ C:/xslt/CombineToOutput.xsl; 行番号:19; 列番号:-1(スタイルシートのコンパイルに失敗しました。2つのエラーが検出されました。)(スタイルシートのコンパイルに失敗しました。2つのエラーが検出されました。)

XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.openapplications.org/oagis/9">

    <!--  STICKER INFO COMBINETOOUTPUT-->
    <xsl:template match="/">
        <xsl:apply-templates select="child::node()/*[name()!='DbResponse']"/>       
    </xsl:template>

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="*:PurchaseOrder">
        <xsl:apply-templates select="*:PurchaseOrderLine/Item/CustomerItemID/ID"/>

        <xsl:template match="*:PurchaseOrderLine/Item/CustomerItemID/ID">
            <xsl:variable name="ArtNr" select="/*/ProcessPurchaseOrder/DataArea/PurchaseOrder/PurchaseOrderLine/Item/CustomerItemID/ID"/>
            <xsl:variable name="WepNr" select="/*/DbResponse/ResultSet/Row[Cell[@name='ARTNR']=$ArtNr]/Cell[@name='WEPNR']"/>
            <xsl:copy>
                <xsl:if test="$WepNr!=''">
                    <LineNumber><xsl:value-of select="$WepNr"/></LineNumber>
                </xsl:if>
                <xsl:apply-templates select="@*|node()"/>
            </xsl:copy>
        </xsl:template>
    </xsl:template>

</xsl:stylesheet>
4

1 に答える 1

2

エラーメッセージは明確です。

<xsl:template match="*:PurchaseOrder"> 

含む

    <xsl:template match="*:PurchaseOrderLine/Item/CustomerItemID/ID"> 

これは XSLT では許可されていません。内側のテンプレートを移動して、外側のテンプレートに含まれないようにします。

于 2012-09-30T08:19:06.787 に答える