Да, вы можете использовать contains()
внутри фильтра предикатов в критериях соответствия для элементов.
<xsl:template match="*[contains(local-name(),'OP')]>
<OP>
<xsl:apply-templates select="@*|node()"/>
</OP>
</xsl:template>
Вы также можете использовать starts-with()
*[starts-with(local-name(),'OP')]
Если вы используете XSLT 2.0, вы можете использовать функцию matches()
, которая поддерживает шаблоны REGEX для более сложного сопоставления.
*[matches(local-name(),'^OP')]