我尝试过几种方法,但我显然不太了解比赛和测试元素。
第一个钻头工作正常。如果is包含等于“I”的子元素EligibilityorBenefitInformation,则它排除整个eligibilitybenefitment元素。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<!-- Identity template : copy all text nodes, elements and attributes -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="EligibilityorBenefit[EligibilityorBenefitInformation='I']" />
</xsl:stylesheet>
问题是当我试图使选择更具限制性时。
我试过了,但都不管用
match="EligibilityorBenefit[EligibilityorBenefitInformation='I' and ServiceTypeCode='35']"
match="EligibilityorBenefit[EligibilityorBenefitInformation='I'] and EligibilityorBenefit[ServiceTypeCode='35']"
我也试着用这样的火柴
<xsl:template match="EligibilityorBenefit">
<xsl:choose>
<xsl:when test="EligibilityorBenefitInformation='I' and ServiceTypeCode='35'">
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="@*|node()" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
这就是我所拥有的
<Eligibility217>
<Loop2110>
<EligibilityorBenefit>
<EligibilityorBenefitInformation>I</EligibilityorBenefitInformation>
<CoverageLevelCode />
<ServiceTypeCode>30</ServiceTypeCode>
<InsuranceTypeCode>EP</InsuranceTypeCode>
</EligibilityorBenefit>
</Loop2110>
<Loop2110>
<EligibilityorBenefit>
<EligibilityorBenefitInformation>A</EligibilityorBenefitInformation>
<CoverageLevelCode>IND</CoverageLevelCode>
<ServiceTypeCode>33</ServiceTypeCode>
</EligibilityorBenefit>
<EligibilityorBenefit>
<EligibilityorBenefitInformation>I</EligibilityorBenefitInformation>
<CoverageLevelCode>IND</CoverageLevelCode>
<ServiceTypeCode>35</ServiceTypeCode>
</EligibilityorBenefit>
<Message>
<MessageText>Specialist</MessageText>
</Message>
<Loop2115>
<Information>
<CodeListQualifierCode>ZZ</CodeListQualifierCode>
<IndustryCode>11</IndustryCode>
</Information>
</Loop2115>
</Loop2110>
</Eligibility217>
这就是我想要的
<Eligibility217>
<Loop2110>
<EligibilityorBenefit>
<EligibilityorBenefitInformation>I</EligibilityorBenefitInformation>
<CoverageLevelCode />
<ServiceTypeCode>30</ServiceTypeCode>
<InsuranceTypeCode>EP</InsuranceTypeCode>
</EligibilityorBenefit>
</Loop2110>
<Loop2110>
<EligibilityorBenefit>
<EligibilityorBenefitInformation>A</EligibilityorBenefitInformation>
<CoverageLevelCode>IND</CoverageLevelCode>
<ServiceTypeCode>33</ServiceTypeCode>
</EligibilityorBenefit>
<Message>
<MessageText>Specialist</MessageText>
</Message>
<Loop2115>
<Information>
<CodeListQualifierCode>ZZ</CodeListQualifierCode>
<IndustryCode>11</IndustryCode>
</Information>
</Loop2115>
</Loop2110>
</Eligibility217>