Как получить значение в XSL

Demetrio

Новичок
Как получить значение в XSL

Вот кучочек xsl

<xsl:template name="rgm">
<SELECT NAME="rgm" CLASS="ph_menu">
<OPTION VALUE="1">one</OPTION>
<OPTION VALUE="2">two</OPTION>
<OPTION VALUE="3">three</OPTION>
</SELECT>
</xsl:template>

Ка получить атрубут элемента <option>?
Если вопрос детский, то ткните в ссылку... без подъ...ок
 

Demetrio

Новичок
это вверху собстно оно и есть.....
кусочек статичного html запихнул в xsl( список), но хотца сделать selected элемента, а для этого надо вырвать значение атрибута элемента OPTION и сравнить его.
 

Orlis

Guest
XSLT умеет адресовать исходное дерево XML, а то что внутри template это Result Tree Fragment, к которому в рамках стандарта 1.0 ты не можешь обратиться
 

Demetrio

Новичок
Автор оригинала: Orlis
XSLT умеет адресовать исходное дерево XML, а то что внутри template это Result Tree Fragment, к которому в рамках стандарта 1.0 ты не можешь обратиться
А как это согласуется с xsl:attribute, данная конструкция же меняет аттрибут у выходных элементов.... или никакого противоречия здесь нет?
 

Alexandre

PHPПенсионер
PHP:
<xsl:template name="rgm">
<SELECT NAME="rgm" CLASS="ph_menu">
<OPTION VALUE="1">
<xsl:if test="MyTag[@myAttr=1]">
<xsl:attribute name="selected ">selected</ xsl:attribute></xsl:if>one</OPTION>
<OPTION VALUE="2">
<xsl:if test="MyTag[@myAttr=2]">
<xsl:attribute name="selected ">selected</ xsl:attribute></xsl:if>two</OPTION>
<OPTION VALUE="3">
<xsl:if test="MyTag[@myAttr=3]">
<xsl:attribute name="selected ">selected</ xsl:attribute></xsl:if>
three</OPTION>
</SELECT> 
</xsl:template>
в дереве XML должен быть <MyTag myAttr="xx"/>
где xx принимает одно из значений {1,2,3}

если именно так я понял вопос :)
 

Demetrio

Новичок
Автор оригинала: Alexandre
PHP:
<xsl:template name="rgm">
<SELECT NAME="rgm" CLASS="ph_menu">
<OPTION VALUE="1">
<xsl:if test="MyTag[@myAttr=1]">
<xsl:attribute name="selected ">selected</ xsl:attribute></xsl:if>one</OPTION>
<OPTION VALUE="2">
<xsl:if test="MyTag[@myAttr=2]">
<xsl:attribute name="selected ">selected</ xsl:attribute></xsl:if>two</OPTION>
<OPTION VALUE="3">
<xsl:if test="MyTag[@myAttr=3]">
<xsl:attribute name="selected ">selected</ xsl:attribute></xsl:if>
three</OPTION>
</SELECT> 
</xsl:template>
в дереве XML должен быть <MyTag myAttr="xx"/>
где xx принимает одно из значений {1,2,3}

если именно так я понял вопос :)
Вопрос понят верно, просто я хотел странного и ввернуть данные прямо в XSL
 

Alexandre

PHPПенсионер
схема такова:
Код:
XML -->   XSLT преобразование --> HTML
                ^
                |
               XSL
по этому данные о состоянии элементов формы должны быть "зашиты" в исходном XML

Обычно, я делаю так
PHP:
<root>
     <report "name"="edit" />
        <dtbeg month="2"/>
        <dtend month="3"/>
     </report >
</root>
 

Demetrio

Новичок
Да, все понял... спасибо...
ошибкой было запихивать данные в xsl ( не для того он был задуман )....
Но родились встречный вопрос...
функция document насколько ресурсоемка в плане дисковых операций. Каждый ли раз обращается к внешнему документу данная функция или один раз?
 

Alexandre

PHPПенсионер
XML Document можно хранить и в строке (памяти) без использования дискового пространства
 
Сверху