1

私は次のコードを持っています:

<?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 &gt; 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 &gt; 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ファイルにこのノードが表示されないのはなぜですか.???

4

2 に答える 2