0
forループ内の条件によって別のタグ(アクティブ)値を出力したいのですが、このアプローチではできません。XSLTはfor-eachの外側にある別のタグにアクセスします
データ:
<ss>
<identifier>
<system>
<value value="10" />
</system>
<system>
<value value="15"/>
</system>
<system>
<value value="789"/>
</system>
</identifier>
<active value="123" />
</ss>
XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL /Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="ss">
<Patient
xmlns="http://hl7.org/fhir">
<identifier>
<xsl:for-each select="identifier/system/value">
<xsl:variable name="aa">
<xsl:if test="@value='10'">
<xsl:value-of select="active/@value" />
</xsl:if>
</xsl:variable>
<gender value="{$aa}"/>
</xsl:for-each>
</identifier>
</Patient>
</xsl:template>
</xsl:stylesheet>
出力:私はあなたが欲しい構文コード
<?xml version="1.0"?>
<Patient
xmlns="http://hl7.org/fhir">
<identifier>
<gender value="123"/>
<gender value=""/>
<gender value=""/>
</identifier>
</Patient>