Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Не могу вывести один раз повторяющийся текст


Автор: Gudsaf 31.8.2015, 16:50
Привет, пишу шаблон - столкнулся с проблемой.
Код

<xsl:for-each select="parent::*/огурцы/огурец/@id">
  <xsl:variable name="ИД_огурца" select="current()"/>
  <xsl:for-each select="/content/огурцы/огурец[@id=$ИД_огурца]/название">
    <xsl:variable name="СЕМЬЯ_огурца" select="."/>
      <xsl:it test="count(preceding::*[text()=$ИМЯ_огурца])=0>
        <xsl:value-of select="."/>
        ..
      ..
    ..

соответственно дерево начинается у меня в деревня и дальше идут две большие ветки:
  • деревня/грядка(она же parent::*)
  • деревня/content
Я, как вы наверное поняли, хочу один раз вывести название семьи огурца если эта семья у меня встретиться среди на грудке(она же parent::*). Семьи у огурцов могут совпадать, но ИД не совпадают. По этому я по ИД пытаюсь выводить название семьи. Как мне посоветовали ранее использую 
Код

"count(preceding::*[text()=$ИМЯ_огурца])=0"

Но почему то если у меня в итоге после 
Код

<xsl:for-each select="/content/огурцы/огурец[@id=$ИД_огурца]/название">

примерно выгружается следующая последовательность из:
  • а
  • а
  • а
  • б
  • а
  • а
  • в
  • в
  • е
  • е
  • е
  • в
  • г
  • а
то некоторые семьи, к примеру б и е не выводятся. В чём проблема (при условии что до этого, в предыдущих грядках деревни указаны все семьи, а потом начинаются вылеты и часть грядок в итоге выводится с не полной информацией)?


Автор: diadiavova 31.8.2015, 22:59
Gudsaf, неплохо было бы увидеть исходный документ и что ты хочешь из него получить. Без этого текст поста выглядит бредом сумасшедшего.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)