У меня есть следующий XML:
<nodes>
<node>
<articles>125,1,9027</articles>
</node>
<node>
<articles>999,48,123</articles>
</node>
<node>
<articles>123,1234,4345,567</articles>
</node>
</nodes>
Мне нужно написать некоторый XSLT, который будет возвращать только узлы с определенным идентификатором статьи, поэтому в приведенном выше примере только те узлы, которые содержат статью 123.
Мой XSLT не очень хорош, поэтому я борюсь с этим.Я хотел бы сделать что-то вроде этого, но я знаю, конечно, что в XSLT нет метода расширения 'instring':
<xsl:variable name="currentNodeId" select="1234"/>
<xsl:for-each select="$allNodes [instring(articles,$currentNodeId)]">
<!-- Output stuff -->
</xsl:for-each>
Я знаю, что это хакерский, но не уверен в лучшем подходе крешать это.Набор узлов, вероятно, будет огромным, и число идентификаторов статей внутри узлов также, вероятно, будет огромным, поэтому я вполне уверен, что превращение этого разделения значения узла и превращение его в набор узлов - это не 'Это будет очень эффективно, но я могу ошибаться!
Любая помощь в том, как лучше всего это сделать, будет высоко оценена, спасибо.