XSLT: XPATH-выражение в аттрибуте XML-тега

Milagro

Новичок
XSLT: XPATH-выражение в аттрибуте XML-тега

Допустим есть такой XML:

<root>
<item attr="/root/div[@name='1']/div[@name='1.2']">
<div name="1">
<div name="1.1">Раздел 1.1</div>
<div name="1.2">Раздел 1.2</div>
</div>
</root>

Т.е. в аттрибуте тега item сидит корректное XPATH выражение. Хочется это выражение использовать в XSLT-преобразовании. Например просто вывести текстовое содержимое узла, который прописан в attr - "Раздел 1.1".

Это в принципе возможно? Если да, то как?
 

slach

Новичок
нету аналога eval() в XPath 1.0

не получится у тебя выполнить выполнить XPath запрос который задан в XML данных
 

Milagro

Новичок
Автор оригинала: slach
нету аналога eval() в XPath 1.0

не получится у тебя выполнить выполнить XPath запрос который задан в XML данных
Спасибо, понял уже. Решил вопрос с помощью уникальной идентификации каждого узла, ну и ссылкой служит не xpath выражение, а просто этот айдишник.
 

Alexandre

PHPПенсионер
Milagro а в два этапа сделать?
вариант 2
лично я для фильтрации использовал @filter
исх xml
Код:
<root filter='1.2'>
<div name="1"> 
  <div name="1.1">Раздел 1.1</div> 
  <div name="1.2">Раздел 1.2</div> 
</div> 
</root>
шаблон
PHP:
<template match="/">
   <call-template name="filtered"/> 
         <with-param name="filter" select="root/@filter "/> 
   </call-template> 
<template />
<template name="filtered">
<param name="filter"/> 
<!--- выбираем то что нужно в <select-of /> или <for-each ...> все зависит от шаблона -->
   <vallue-of select = "//root/div/div[@name = $filter]" >
<template />
возможно сделать два -три параметра фильтрации.
Единственное ограничение - параметры должны быть жестко заданы, т.е. такая штука как Х-путь не пройдет, только их строковое ограничение.

все тоже самое относится к к сортировке, т.е. если мы, например, генерим таблицу, и хотим показывать ее отсортированной по разным столбцам, то можно динамически определять параметр @sort и его использовать в качестве парааметра для <sort select="$sort">

-~{}~ 10.04.06 19:23:

Решил вопрос с помощью уникальной идентификации каждого узла
моим способом можно ывбрать не единственный узел а группу узлов
 
Сверху