Я пытаюсь сравнить текст в определенном узле (EN_PLAN_NAME) со списком строк, чтобы я мог выводить только узлы, содержащие текст, соответствующий одной из этих строк. Я попытался с помощью ответа от этого подобного вопроса:XSLT 1.0 Использование Содержит с набором внешнего набора параметров
How to compare against multiple strings in xslt
ВХОДА XML
<EligibilityRecords xmlns="http://CDHC_Eligibility_LSDD">
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>Health Savings Account</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>zzHealth Reimbursement Arrangement</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>Health Reimbursement Arrangement 233</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>HRA</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>BASE HRA</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>FSA</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
</EligibilityRecords>
ЗАПЛАНИРОВАННЫХ XML
<EligibilityRecords xmlns="CDHC_Eligibility_LSDD_Internal">
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>zzHealth Reimbursement Arrangement</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>Health Reimbursement Arrangement 233</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>HRA</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
<Eligibility_Detail_Record xmlns="">
<EN_PLAN_NAME>BASE HRA</EN_PLAN_NAME>
<EN_MBRSHP_EFF_STRT_DT>01012017</EN_MBRSHP_EFF_STRT_DT>
</Eligibility_Detail_Record>
</EligibilityRecords>
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var"
exclude-result-prefixes="msxsl var s0 ns0" version="1.0"
xmlns:s0="CDHC_Eligibility_LSDD"
xmlns:ns0="CDHC_Eligibility_LSDD_Internal">
<xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
<xsl:param name="HRAPlanNames">
<PlanName>Health Reimbursement Arrangement</PlanName>
<PlanName>HRA</PlanName>
</xsl:param>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<ns0:EligibilityRecords>
<xsl:for-each select="Eligibility_Detail_Record">
<xsl:if test="contains(EN_PLAN_NAME,msxsl:node-set($HRAPlanNames)/*)">
<Eligibility_Detail_Record>
<xsl:copy-of select="EN_PLAN_NAME"/>
</Eligibility_Detail_Record>
</xsl:if>
</xsl:for-each>
</ns0:EligibilityRecords>
</xsl:template>
</xsl:stylesheet>
XSLT- выводит любую EN_PLAN_NAME, который имеет текст, содержащий «Здоровье Компенсация Композиция», но не выводит какой-либо узел, который содержит «HRA». Я не уверен, что я делаю неправильно.