Передо мной встала проблема. Как в XSLT строковое выражение 'Root\a\b\c' преобразовать в дерево, то есть найти все узлы 'c' соответствующие этому пути. Подскажите пожалуйста.
Здравствуйте, kryll, Вы писали:
K>Передо мной встала проблема. Как в XSLT строковое выражение 'Root\a\b\c' преобразовать в дерево, то есть найти все узлы 'c' соответствующие этому пути. Подскажите пожалуйста.
оно?Автор: Lloyd
Дата: 28.06.02
Здравствуйте, kryll, Вы писали:
K>Передо мной встала проблема. Как в XSLT строковое выражение 'Root\a\b\c' преобразовать в дерево, то есть найти все узлы 'c' соответствующие этому пути. Подскажите пожалуйста.
Дам идею, детали доработаешь сам (такие как '/' в конце и namespace):
<xsl:template match="*" mode="parser">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="$text = ''">
<xsl:copy-of select="."/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="before" select="substring-before($text, '/')"/>
<xsl:variable name="after" select="substring-after($text, '/')"/>
<xsl:apply-templates select="*[local-name() = $before]" mode="parser">
<xsl:with-param name="text" select="$after"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:template>