UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 08 Февраля 2014, 22:43:58

Название: Как вытащить из атрибута name его значение по его id
Отправлено: Axiomateria от 08 Февраля 2014, 22:43:58
Задачка вроде простая, но пока не получается вытащить значение атрибута "@name" (в данном случае это значение "accessories")  в зависимости от его id (в данном случае id="401")

То есть надо в коде вёрстки вместо  {.//property[@name = 'accessories']/@name}
   <a href="#{.//property[@name = 'accessories']/@name}" data-toggle="tab">
         <xsl:apply-templates select=".//property[@name = 'accessories']/title" />
    </a>
подставить в чистом виде accessories

XML такой:
<property id="401" name="accessories" type="symlink">
<title>Аксессуары</title>
<value>
<page id="54" parentId="39" link="/shop/category_test/test/" is-active="1" object-id="413" type-id="132" update-time="1391879655" alt-name="test" xlink:href="upage://54">
<basetype id="55" module="catalog" method="object">Объекты каталога</basetype>
<name>Название объекта тест</name>
</page>
</value>
</property>
Название: Re:Как вытащить из атрибута name его значение по его id
Отправлено: e.ioffe от 09 Февраля 2014, 00:30:23
<a href="#accessories" data-toggle="tab">
         <xsl:apply-templates select=".//property[@name = 'accessories']/title" />
    </a>

Или имя этого атрибута может изменяться? В таком случае строчка          <xsl:apply-templates select=".//property[@name = 'accessories']/title" /> не будет работать
Название: Re:Как вытащить из атрибута name его значение по его id
Отправлено: Axiomateria от 09 Февраля 2014, 09:31:05
<a href="#accessories" data-toggle="tab">
         <xsl:apply-templates select=".//property[@name = 'accessories']/title" />
    </a>
Имя атрибута (оно же название поля) возможно будет меняться, по этому я и хочу привязать его значение к id этого поля, который будет оставаться постоянным.
Название: Re:Как вытащить из атрибута name его значение по его id
Отправлено: e.ioffe от 09 Февраля 2014, 10:59:44
Имя атрибута (оно же название поля) возможно будет меняться, по этому я и хочу привязать его значение к id этого поля, который будет оставаться постоянным.

ID поля - вещь такая же непостоянная, как и имя атрибута. Случайно удалили поле, создали новое с таким же именем - у него ID будет другой. Надо будет копаться в шаблонах и искать, где была привязка по ID.

Стараюсь не менять имена полей, так как не знаю, какая логика и в каком месте может быть на него подвязана.
Название: Re:Как вытащить из атрибута name его значение по его id
Отправлено: Axiomateria от 09 Февраля 2014, 11:15:59
Имя атрибута (оно же название поля) возможно будет меняться, по этому я и хочу привязать его значение к id этого поля, который будет оставаться постоянным.

ID поля - вещь такая же непостоянная, как и имя атрибута. Случайно удалили поле, создали новое с таким же именем - у него ID будет другой. Надо будет копаться в шаблонах и искать, где была привязка по ID.

Стараюсь не менять имена полей, так как не знаю, какая логика и в каком месте может быть на него подвязана.

В моём случае id будет точно незыблем.
Название: Re:Как вытащить из атрибута name его значение по его id
Отправлено: NOIRMAN от 09 Февраля 2014, 11:59:14
Попробую немного ступить )))
А просто
<xsl:apply-templates select=".//property[@id = 401]/title" />
отрабатывать не хочет?
Название: Re:Как вытащить из атрибута name его значение по его id
Отправлено: Axiomateria от 09 Февраля 2014, 12:24:02
Попробую немного ступить )))
А просто
<xsl:apply-templates select=".//property[@id = 401]/title" />
отрабатывать не хочет?

А вот так захотел:
                        <a href="#{.//property[@id='401']/@name}" data-toggle="tab">
                            <xsl:apply-templates select=".//property[@id='401']/@name" />
                        </a>

@name - выводит английские названия полей, что и надо, а что б русский выводились, то конечно так, как у вас:
<xsl:apply-templates select=".//property[@id='401']/title />