XSL: Как указать путь к узлу через строковою переменную?
От: lnu Украина  
Дата: 01.11.06 13:57
Оценка:
Можно-ли указать путь к узлу через строковою переменную?
T.е., :
<xsl:for-each select="data/docs/item"> 
    <xsl:variable name="CrntItem" select="."/> 
    <tr> 
    <xsl:for-each select="../../../structure/docs/fld"> 
        <td class="TbData"> 
        <xsl:variable name="CrntFLD" select="@name"/> <!--Получаем название узла--> 
        <xsl:value-of select="$CrntItem/$CrntFLD"/><!--А вот это не работает--> .....

Для такого XML:
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="ShowList.xsl" ?>

<LIST>
<structure>
    <docs type="-2" Caption = "Справочник">
        <fld name ="DI"     type = "2" Caption = "Код"/>
        <fld name ="NameUA" type = "2" Caption = "Название укр"/>
        <fld name ="NameRU" type = "2" Caption = "Назва рус"/>
        <fld name ="AZ"     type = "5" Caption = "Изменения">
            <fld name ="Title"  type = "1" Caption = "Название изминения"/>    
            <fld name ="PCount" type = "1" Caption = "Страниц"/>
        </fld>
    </docs>
</structure>
<data>
    <docs>
        <item>
            <DI>Гост 124334-1234</DI>
            <NameUA>dfgdfg <BR/>dfgs dfgs dfg</NameUA>
            <NameRU>Название документа 1</NameRU>

        </item>
        <item>
            <DI>Гост 124334-4321</DI>
            <NameUA>Назва документу 2</NameUA>
            <NameRU>Название документа 2</NameRU>
            <AZ>
                <item>
                    <Title>Поправка 1</Title>
                    <PCount>12</PCount>
                </item>
                <item>
                    <Title><![CDATA[<I>Some htmltext</I>]]></Title>
                    <PCount>3</PCount>
                </item>
            </AZ>
        </item>
    </docs>
</data>
</LIST>



такой, например, вариант работает:

<xsl:value-of select="$CrntItem/FieldName"/>
а мне нужно, чтоб работал такой:
<xsl:variable name="CrntFLD" select="'FieldName'"/>
<xsl:value-of select="$CrntItem/$CrntFLD"/>
Возможно-ли это?
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник."
Re: XSL: Как указать путь к узлу через строковою переменную?
От: Lloyd Россия  
Дата: 01.11.06 14:14
Оценка:
Здравствуйте, lnu, Вы писали:

lnu>Можно-ли указать путь к узлу через строковою переменную?

здесь
Автор: SergeyP
Дата: 28.06.02
Re[2]: XSL: Как указать путь к узлу через строковою переменн
От: lnu Украина  
Дата: 01.11.06 14:37
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>здесь
Автор: SergeyP
Дата: 28.06.02

тоесть только через функции расширения?...
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник."
Re[3]: XSL: Как указать путь к узлу через строковою переменн
От: Lloyd Россия  
Дата: 01.11.06 14:43
Оценка:
Здравствуйте, lnu, Вы писали:

L>>здесь
Автор: SergeyP
Дата: 28.06.02

lnu>тоесть только через функции расширения?...

В общем лучае да. Но в твое варианте должно хватить $CrntItem/*[local-name() = $CrntFLD]
Re[4]: XSL: Как указать путь к узлу через строковою переменн
От: lnu Украина  
Дата: 01.11.06 15:13
Оценка:
L>В общем лучае да. Но в твое варианте должно хватить $CrntItem/*[local-name() = $CrntFLD]
Спасибо. Подходит идеально!
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник."
Re[5]: XSL: Как указать путь к узлу через строковою переменн
От: Lloyd Россия  
Дата: 01.11.06 15:15
Оценка: 3 (1)
Здравствуйте, lnu, Вы писали:


L>>В общем лучае да. Но в твое варианте должно хватить $CrntItem/*[local-name() = $CrntFLD]

lnu>Спасибо. Подходит идеально!

Для спасибо тут есть специальная кнопочка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.