Xml NULL时从输出中排除节点
需要找到一种方法来防止XML节点在没有填充值的情况下被输出 这是我需要更改的XSLT的当前部分:Xml NULL时从输出中排除节点,xml,xslt,Xml,Xslt,需要找到一种方法来防止XML节点在没有填充值的情况下被输出 这是我需要更改的XSLT的当前部分: <xsl:element name="CdtrAcct"> <xsl:element name="Id"> <xsl:element name="IBAN"> <xsl:value-of select="Supplier/Iban"/> </xsl:element> </xsl:element> &
<xsl:element name="CdtrAcct">
<xsl:element name="Id">
<xsl:element name="IBAN">
<xsl:value-of select="Supplier/Iban"/>
</xsl:element>
</xsl:element>
</xsl:element>
环顾四周后,我尝试更改为以下内容,但不起作用:
<xsl:element name="CdtrAcct">
<xsl:element name="Id">#
<xsl:for-each select="CdtrAcct/Id">
<xsl:if test="IBAN!= ''">
<xsl:element name="IBAN">
<xsl:value-of select="Supplier/Iban"/>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:element>
#
i、 e.如果IBAN为空,则CdtrAcct/Id不应具有该CdtrAcct/Id的IBAN子节点,但如果下一个CdtrAcct/Id具有IBAN,则应具有IBAN
非常感谢您的帮助。只需更换此
<xsl:if test="IBAN!= ''">
谢谢,效果很好。我发现如果没有填充IBAN,我还需要排除ID节点,因此我将if测试提高了一个级别:)
<xsl:if test="Supplier/Iban != ''">
<CdtrAcct>
<Id>#
<xsl:for-each select="CdtrAcct/Id">
<xsl:if test="Supplier/Iban!= ''">
<IBAN>
<xsl:value-of select="Supplier/Iban"/>
</IBAN>
</xsl:if>
</xsl:for-each>
</Id>
</CdtrAcct>