Xml XSLT1.0如何在条件为真时生成空结果和/或中止转换

Xml XSLT1.0如何在条件为真时生成空结果和/或中止转换,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,如果HeaderInformation/InvoiceType=CreditNote,如何中止xslt转换 XML: 1234 5678 2019-01-11:09:16:43 不 123584 1. 信用证 取决于“中止”的含义: 您可以像这样使用: <xsl:if test="HeaderInformation/InvoiceType='CreditNote'"> <xsl:message terminate="yes"/> </xsl:if>

如果HeaderInformation/InvoiceType=CreditNote,如何中止xslt转换

XML:


1234
5678
2019-01-11:09:16:43
不
123584
1.
信用证

取决于“中止”的含义:

您可以像这样使用

<xsl:if test="HeaderInformation/InvoiceType='CreditNote'">
    <xsl:message terminate="yes"/>
</xsl:if>

这将以错误结束

如果你只是不想出错,你也可以这样做:

<xsl:template match="/">
    <xsl:if test="SALESINVOICE[not(Interchange/HeaderInformation/InvoiceType='CreditNote')]">
        <!-- Here goes your XSLT code -->
        <xsl:apply-templates/>
    </xsl:if>
</xsl:template>


如果找到值为
CreditNote
,则将输出空文档。

取决于您所说的“中止”:

您可以像这样使用

<xsl:if test="HeaderInformation/InvoiceType='CreditNote'">
    <xsl:message terminate="yes"/>
</xsl:if>

这将以错误结束

如果你只是不想出错,你也可以这样做:

<xsl:template match="/">
    <xsl:if test="SALESINVOICE[not(Interchange/HeaderInformation/InvoiceType='CreditNote')]">
        <!-- Here goes your XSLT code -->
        <xsl:apply-templates/>
    </xsl:if>
</xsl:template>

如果找到值为
CreditNote
,这将输出一个空文档。

这里有一种方法(多种方法中的一种):


这里有一种方法(多种方法中的一种):



事实上,我不得不编辑我的答案–@michael-hor257k比我更正确地进行了XPath测试。另外,他在没有
的情况下做这件事的方式可能更惯用XSLT。实际上,我必须编辑我的答案-@michael-hor257k的XPath测试比我“更正确”。另外,他在不使用
的情况下使用XSLT的方式可能更为惯用。