私は次のコードを持っています:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cfd="http://www.sat.gob.mx/cfd/2" xmlns:ecc="http://www.sat.gob.mx/cfd/2" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" version="1.0" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:element name="Addenda">
<xsl:element name="requestForPayment">
<xsl:attribute name="type">SimpleInvoiceType</xsl:attribute>
<xsl:attribute name="contentVersion">1.3.1</xsl:attribute>
<xsl:attribute name="documentStructureVersion">AMC7.1</xsl:attribute>
<xsl:attribute name="documentStatus">ORIGINAL</xsl:attribute>
<xsl:attribute name="DeliveryDate">
<xsl:value-of select="substring(translate(//DocDate, ' ', ''),1,10)"/>
</xsl:attribute>
<xsl:element name="requestForPaymentIdentification">
<xsl:element name="entityType">
<xsl:call-template name="Tpos_Documento"/>
</xsl:element>
<xsl:element name="uniqueCreatorIdentification">
<xsl:value-of select="concat(//Serial/Name,//Serial/Folio)"/>
</xsl:element>
</xsl:element>
<xsl:variable name="zzz_specialInstruction" select="count(//CustomField[@name = 'Text3']/StringValue)"/>
<xsl:if test="$zzz_specialInstruction > 0">
<xsl:element name="specialInstruction">
<xsl:attribute name="code">ZZZ</xsl:attribute>
<xsl:element name="text">
<xsl:value-of select="//CustomField[@name = 'Text3']/StringValue"/>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
しかし、次のノードが XML 生成に表示されません。
<xsl:variable name="zzz_specialInstruction" select="count(//CustomField[@name = 'Text3']/StringValue)"/>
<xsl:if test="$zzz_specialInstruction > 0">
<xsl:element name="specialInstruction">
<xsl:attribute name="code">ZZZ</xsl:attribute>
<xsl:element name="text">
<xsl:value-of select="//CustomField[@name = 'Text3']/StringValue"/>
</xsl:element>
</xsl:element>
</xsl:if>
私の問題は、XSLT のコードをコンパイルすると、そのノードが表示されないことです。私のXMLファイルにこのノードが表示されないのはなぜですか.???