Вывод id корневой группы

#
Вывод id корневой группы
Здравствуйте.
Имеется интернет магазин с тремя уровнями вложенности.
Нужно вывести товар в следующем виде
<a rel="id корневой группы товара" href="#">Имя товара</a>
Вопрос, как вывести id корневой группы товара (самая первая группа в дереве групп)?
Спасибо.
#
Re: Вывод id корневой группы
Это <xsl:variable name="top_group_id" select="//group[@id =/shop/@current_group_id]/ancestor::group/@id" />
к сожалению не работает
Модератор
#
Re: Вывод id корневой группы
давайте начнем с того, почему Вы решили, что тег называется group, а не shop_group. Далее, почему /shop/@current_group_id атрибут тега, а не /shop/group?
#
Re: Re: Вывод id корневой группы
К сожалению, до конца еще не понял как формируется эта переменная, пока еще изучаю.
Данный код <xsl:variable name="top_group_id" select="//group[@id =/shop/@current_group_id]/ancestor::group/@id" /> нашел на форуме.
Для меня еще не понятная иерархия в xml.

Попробовал поменять на то, как вы сказали, <xsl:variable name="top_group_id" select="//shop_group[@id =/shop/group]/ancestor::shop_group/@id" />
Не работает.
#
Re: Вывод id корневой группы
XML выглядит следующим образом

<shop_group id="673">
      <shop_id>1</shop_id>
      <parent_id>0</parent_id>
      <name>Детский транспорт</name>
      <description></description>
      <image_large>shop_group_image673.jpg</image_large>
      <image_small>small_shop_group_image673.jpg</image_small>
      <sorting>0</sorting>
      <indexing>1</indexing>
      <subgroups_count>4</subgroups_count>
      <subgroups_total_count>4</subgroups_total_count>
      <items_count>56</items_count>
      <items_total_count>56</items_total_count>
      <active>1</active>
      <siteuser_group_id>-1</siteuser_group_id>
      <path>detskij-transport</path>
      <seo_title></seo_title>
      <seo_description></seo_description>
      <seo_keywords></seo_keywords>
      <user_id>19</user_id>
      <image_large_width>600</image_large_width>
      <image_large_height>600</image_large_height>
      <image_small_width>250</image_small_width>
      <image_small_height>250</image_small_height>
      <guid>2CC664C0-AF41-D366-2FA9-82C499201AFF</guid>
      <url>/shop/detskij-transport/</url>
      <dir>/upload/shop_1/6/7/3/group_673/</dir>
   </shop_group>
   <shop_item id="1143">
      <shortcut_id>0</shortcut_id>
      <shop_tax_id>0</shop_tax_id>
      <shop_seller_id>0</shop_seller_id>
      <shop_group_id>605</shop_group_id>
      <shop_currency_id>1</shop_currency_id>
      <shop_id>1</shop_id>
      <shop_producer_id>140</shop_producer_id>
      <shop_measure_id>0</shop_measure_id>
      <type>0</type>
      <name>Игрушка 1</name>
      <marking></marking>
      <vendorcode></vendorcode>
      <description>&lt;p&gt;Бутылочка Tommee tippee пластик 260 мл (2шт) антиколиковая с индикатором температуры соска силикон&lt;/p&gt;</description>
      <text></text>
      <image_large>shop_items_catalog_image1143.jpg</image_large>
      <image_small>small_shop_items_catalog_image1143.jpg</image_small>
      <weight>0.00</weight>
      <active>1</active>
      <siteuser_group_id>-1</siteuser_group_id>
      <sorting>0</sorting>
      <path>a-set-of-tommee-tippee-for-introducing-first-foods-for-baby-girl-1701</path>
      <seo_title></seo_title>
      <seo_description></seo_description>
      <seo_keywords></seo_keywords>
      <indexing>1</indexing>
      <image_small_height>250</image_small_height>
      <image_small_width>250</image_small_width>
      <image_large_height>600</image_large_height>
      <image_large_width>600</image_large_width>
      <yandex_market>1</yandex_market>
      <yandex_market_bid>0</yandex_market_bid>
      <yandex_market_cid>0</yandex_market_cid>
      <manufacturer_warranty>0</manufacturer_warranty>
      <country_of_origin></country_of_origin>
      <yandex_market_sales_notes></yandex_market_sales_notes>
      <user_id>19</user_id>
      <siteuser_id>0</siteuser_id>
      <modification_id>0</modification_id>
      <guid>2997C565-83CC-3379-575C-C0BC37525A6E</guid>
      <showed>6</showed>
      <length>0.00</length>
      <width>0.00</width>
      <height>0.00</height>
      <deleted>0</deleted>
      <url>/shop/nutrition-and-feeding/accessories-for-feeding/a-set-of-tommee-tippee-for-introducing-first-foods-for-baby-girl-1701/</url>
      <date>22.01.2015</date>
      <datetime>22.01.2015 22:27:34</datetime>
      <start_datetime>0000-00-00 00:00:00</start_datetime>
      <end_datetime>0000-00-00 00:00:00</end_datetime>
      <dir>/upload/shop_1/1/1/4/item_1143/</dir>
      <rest>0</rest>
      <reserved>0</reserved>
      <price>1390.00</price>
      <discount>0</discount>
      <tax>0.00</tax>
      <price_tax>1390.00</price_tax>
      <currency>руб.</currency>
      <shop_producer id="140">
         <shop_producer_dir_id>0</shop_producer_dir_id>
         <shop_id>1</shop_id>
         <name>Tommee tippee </name>
         <active>1</active>
         <description></description>
         <image_large></image_large>
         <image_small></image_small>
         <sorting>0</sorting>
         <path>tommee-tippee</path>
         <user_id>19</user_id>
         <address></address>
         <phone></phone>
         <fax></fax>
         <site></site>
         <email></email>
         <tin></tin>
         <kpp></kpp>
         <psrn></psrn>
         <okpo></okpo>
         <okved></okved>
         <bik></bik>
         <current_account></current_account>
         <correspondent_account></correspondent_account>
         <bank_name></bank_name>
         <bank_address></bank_address>
         <seo_title></seo_title>
         <seo_description></seo_description>
         <seo_keywords></seo_keywords>
         <dir>/upload/shop_1/producers/</dir>
      </shop_producer>
   </shop_item>


Т.е. необходимо осуществить вывод id группы которой принадлежит <shop_item id="1143"> (в данном случае это <shop_group id="673">
Подскажите пожалуйста как это сделать?
Можно ли это сделать только через xsl или нужно менять ТДС?
Спасибо!
Модератор
#
Re: Вывод id корневой группы
Winkiller писал(а):
Т.е. необходимо осуществить вывод id группы которой принадлежит <shop_item id="1143"> (в данном случае это <shop_group id="673"

Не совсем так. В вашем примере shop_item 1143 принадлежит группе <shop_group_id>605</shop_group_id>. А её в XML нет. Если у вас действительно так выглядит XML, что в нем 1 товар и 1 одна группа, то ничего не сможете вывести.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Re: Вывод id корневой группы
XML не совсем так выглядит, это я просто как образец вывел.
Т.е. есть товар, у него есть принадлежность к корневой группе, именно ее мне нужно вывести, но уже неделю мучаюсь и не пойму как?
Структура групп следующая
Группа 1
->Группа 2
->->Группа 3
->->->Товар 1
Необходимо вывести id "Группа 1" у "Товара 1"
Модератор
#
Re: Вывод id корневой группы
Понятно. Тогда так:

<xsl:variable name="group_id" select="/shop/group"/>
<xsl:variable name="top_group_id" select="//shop_group[@id=$group_id]/ancestor::shop_group[2]/@id" />


Расположено должно быть в <xsl:template match="shop_item">

В самой карточке товара вообще можно так вывести:

<xsl:variable name="top_group_id" select="//shop_group[parent_id=0]/@id" />
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Re: Вывод id корневой группы
Спасибо огромное, очень близко но немного не то, т.к. выводит у всех товаров один id (id самой первой группы в xml)
Хочу уточнить структуру xml:

Группа 1
->Группа
->->Подгруппа
->->->Товар
->->->Товар

Группа 2
->Группа
->->Подгруппа
->->->Товар
->->->Товар

Сейчас товарам из "Группы 2" присваивается id "Группы 1"
Модератор
#
Re: Вывод id корневой группы
Напишите в поддержку, с данными в ЦА и ссылкой на эту тему. Посмотрю сразу на сайте. Наугад писать то еще удовольствие.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Авторизация