У меня есть этот XML-файлMatch атрибут в XSLT версии 1.0
<REFERENCES>
<COMPLETE REFERENCE="ABC1" />
<CODIGO_SIM REFERENCE="ABC1" />
<ETAPA REFERENCE="C1" />
<NPP_SERIE REFERENCE="NAOBI" />
<SIM_MPLD REFERENCE="METALIC" />
<SIM_COCI REFERENCE="NOTTE" />
<SIM_ANCH REFERENCE="563" />
<NP_TIPO REFERENCE="Placard" />
</REFERENCES>
Я хочу FILER только те записи, начинающиеся с SIM_, но я не мог, поэтому я изменил файл, добавив имя атрибут к его значению, например:
<REFERENCES>
<COMPLETE REFERENCE="ABC1" />
<CODIGO_SIM REFERENCE="ABC1" />
<ETAPA REFERENCE="C1" />
<NPP_SERIE REFERENCE="NAOBI" />
<SIM_MPLD REFERENCE="SIM_MPLD|METALIC" />
<SIM_COCI REFERENCE="SIM_COCCI|NOTTE" />
<SIM_ANCH REFERENCE="SIM_ANCH|563" />
<NP_TIPO REFERENCE="Placard" />
</REFERENCES>
и поэтому я могу фильтровать эти записи с этим:
<xsl:variable name="CodigoSim" select="REFERENCES/CODIGO_SIM/@REFERENCE" />
<xsl:for-each select="REFERENCES//.//@REFERENCE" >
<xsl:if test="starts-with(., 'SIM_')" >
<xsl:value-of select="$CodigoSim"/>
<xsl:text>|</xsl:text>
<xsl:value-of select=" substring-after(., 'SIM_')" />
<xsl:value-of select="substring-after(., '|')" />
<xsl:call-template name="QuebrarLinha"/>
</xsl:if>
</xsl:for-each>
, который делает именно то, что я хочу. Есть ли способ получить такое же поведение без изменения XML-файла?