其他模板中的xslt调用模板

时间:2018-09-20 13:42:08

标签: xslt xslt-1.0

我想在另一个模板中调用OBS模板,并希望删除该部分。但与它不同的是,它删除了完整的部分,因为我认为我在Obs模板中添加了Match。但我不选择该部分并删除

            <?xml version="1.0" encoding="UTF-8"?>
            <xsl:stylesheet xmlns="urn:hl7-org:v3" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:isc="http://extension-functions.intersystems.com">
                <xsl:output method="xml" indent="no" encoding="ISO-8859-1"/>
                <xsl:template match="//@* | //node()">
                    <xsl:copy>
                        <xsl:apply-templates select="@* | node()"/>
                    </xsl:copy>
                </xsl:template>

                <xsl:template match="/Container/Encounters/Encounter">  

                    <xsl:variable name="EncNumber" select="EncounterNumber"/>
                    <xsl:variable name="ObsValue" select="/Container/Observations/Observation[EncounterNumber=$EncNumber and ObservationValue='Substance Abuse']/ObservationValue"/>
                    <xsl:variable name="ObsCode" select="/Container/Observations/Observation[EncounterNumber=$EncNumber and ObservationCode/Description/text()='Registration Chief Complaint']/ObservationCode/Description/text()"/>
                    <xsl:variable name="EncType" select="EncounterType"/>
                    <xsl:if test="EncounterNumber='8015'">
                        <xsl:call-template name="obs">
                            <xsl:with-param name="EncNumber" select="EncounterNumber"></xsl:with-param>
                        </xsl:call-template>
                        <xsl:copy>
                            <xsl:apply-templates select="@* | node()"/>                
                        </xsl:copy>
                    </xsl:if>
                </xsl:template>

                <xsl:template name = "obs" match="/Container/Observations/Observation" >
                    <xsl:param name = "EncNumber" />
                    <xsl:if test="not($EncNumber)">
                    <xsl:if test="$EncNumber=EncounterNumber">
                        <xsl:copy>                
                            <xsl:apply-templates select="@* | node()"/>            
                        </xsl:copy>
                    </xsl:if>
                    </xsl:if>
                </xsl:template>
            </xsl:stylesheet>                

0 个答案:

没有答案