Перевод из строкового типа в набор узлов в XSLT
От: kryll  
Дата: 04.09.07 09:52
Оценка:
Передо мной встала проблема. Как в XSLT строковое выражение 'Root\a\b\c' преобразовать в дерево, то есть найти все узлы 'c' соответствующие этому пути. Подскажите пожалуйста.
Re: Перевод из строкового типа в набор узлов в XSLT
От: Lloyd Россия  
Дата: 04.09.07 10:08
Оценка:
Здравствуйте, kryll, Вы писали:

K>Передо мной встала проблема. Как в XSLT строковое выражение 'Root\a\b\c' преобразовать в дерево, то есть найти все узлы 'c' соответствующие этому пути. Подскажите пожалуйста.


оно?
Автор: Lloyd
Дата: 28.06.02
Re: Перевод из строкового типа в набор узлов в XSLT
От: sergey_shandar США http://getboost.codeplex.com/
Дата: 05.09.07 01:37
Оценка:
Здравствуйте, 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>
getboost.codeplex.com
citylizard.codeplex.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.