Можно-ли указать путь к узлу через строковою переменную?
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"/>
Возможно-ли это?
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник."
Здравствуйте, lnu, Вы писали:
lnu>Можно-ли указать путь к узлу через строковою переменную?
здесьАвтор: SergeyP
Дата: 28.06.02
Здравствуйте, Lloyd, Вы писали:
L>здесьАвтор: SergeyP
Дата: 28.06.02
тоесть только через функции расширения?...
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник."
Здравствуйте, lnu, Вы писали:
L>>здесьАвтор: SergeyP
Дата: 28.06.02
lnu>тоесть только через функции расширения?...
В общем лучае да. Но в твое варианте должно хватить $CrntItem/*[local-name() = $CrntFLD]
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник."
Здравствуйте, lnu, Вы писали:
L>>В общем лучае да. Но в твое варианте должно хватить $CrntItem/*[local-name() = $CrntFLD]
lnu>Спасибо. Подходит идеально!
Для спасибо тут есть специальная кнопочка.