В моей схеме есть AddressLine1, AddressLine2, AddressLine3 и AddressLine4. Когда адрес добавляется к каждой AddressLine, запятая вставляется для разделения AddressLines. Однако, если только AddressLine1 и AddressLine2 имеют адрес, то после AddressLine2 не должно быть запятой, потому что после нее больше ничего нет. Мой вывод показывает запятую после AddressLine2 (Сидней, Австралия, 123456A), хотя это не должно быть. Выход 472 Case Ave, Apt 2, Saint Paul, MN, 55106; 123 Beautiful Ocean, Сидней, Австралия, 123456A,
Xml-код
<Address InternalAddressID="1618212014" Type="Foreign">
<Location Word="OTHER">Other</Location>
<AddressLine1>123 Beautiful Ocean</AddressLine1>
<AddressLine2>Sydney Australia 123456A</AddressLine2>
<Foreign>true</Foreign>
</Address>
Xslt-код
<xsl:for-each select="Addresses/Address">
<xsl:for-each select="ancestor::ProtectionOrder/ProtectionOrderParties/ProtectionOrderParty/MNProtectionOrderPartyAdditional/ProtectedAddresses/Address[@InternalAddressID=current()/@InternalAddressID]">
<xsl:if test="AddressLine1">
<xsl:value-of select="AddressLine1"/>
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="AddressLine2">
<xsl:value-of select="AddressLine2"/>
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="AddressLine3">
<xsl:value-of select="AddressLine3"/>
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="AddressLine4">
<xsl:value-of select="AddressLine4"/>
</xsl:if>
<xsl:text>; </xsl:text>
</xsl:for-each>
</xsl:for-each>