Xpoint
   [напомнить пароль]

XSLT - выполнять XPath выражение хранящееся в тексте

Метки: [без меток]
2012-11-26 14:00:52 [обр] Principal AG(5/11)[досье]

XSL - выполнять XPath выражение хранящееся в тексте.
Всем доброго в.с.
При преобразовании некоторого XML документа необходимо выполнять XPath выражения хранящиеся в атрибутах.
Например в исходном документе:

<xs:attribute name="member_id" type="integer" ref="members/member/@member_id"/>

Необходимо в процессе преобразования выполнить выражение содержащееся в атрибуте ref, т.е. считать содержащееся в нём значение.
В шаблоне делаю:
<xsl:variable name="nm" select="./@ref"/>
...
<xsl:value-of select="$nm"/>

Но вместо ожидаемого значения member_id получаю лишь текст самого выражения т.е. 'members/member/@member_id'.
Что я делаю не так?
Заранее спасибо.

спустя 40 минут [обр] Lynn «Кофеман»(52/571)[досье]
сообщение промодерировано
Этого нельзя сделать на чистом XSLT.
В EXSLT есть функция dyn:evaluate
спустя 7 дней [обр] Principal AG(5/11)[досье]
Спасибо.
Обидно, досадно, ... зато доходчиво и однозначно.
спустя 10 минут [обр] Lynn «Кофеман»(52/571)[досье]
Ну так может та реализация XSLT, который вы пользуетесь поддерживает это расширение?
спустя 2 дня 9 часов [обр] Principal AG(5/11)[досье]
Не-а. Я на XML::LibXSLT под Perl.
Пришлось делать через ... (ну вы поняли).
Подключил внешнюю функцию, передаю ей текст выражения, а она уже в среде Perl ищет XPath-ом по исходному документу. Благо дело парсированный исходник у неё под рукой и возвращать нужно скаляр.
Powered by POEM™ Engine Copyright © 2002-2005