XSL - Выберите определенные c элементы с определенным c полем И ограничьте вывод 3 элементами - PullRequest
0 голосов
/ 20 января 2020

У меня есть фид продукта, содержащий около 500 продуктов, я использую его для загрузки в электронные письма. Я загружаю этот фид из инструмента управления фидами в свой XSLT и хочу выбрать только указанные c элементы, все из которых имеют значение 'test1' в поле 'видимость' (будет около 35 элементов), но тогда я хочу только загрузить 3 предмета. Таким образом, всего 500 продуктов в фиде - 35 со значением «test1» в поле «видимость» и выходными данными будут только 3 (с дополнительным видом цены низко - высоко).

Я смог либо выберите продукты с указанным полем c ИЛИ выберите только 3 продукта. Но никогда не оба правила в одном.

Я попробовал следующее:

 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="items">
  <!-- start the items -->
 <xsl:call-template name="item" />
 </xsl:template>
 <xsl:template name="item">
    <xsl:for-each select="item">
      <xsl:sort select="price" order="ascending"/>
         <xsl:choose>
            <xsl:when test="visibility = 'test1'">
               <xsl:if test="(position() &lt;= 3)">

В выводе не отображаются продукты. Помимо друг друга, они работают. Я также пытался сначала использовать IF, а затем правила выбора / когда, но это тоже не сработало.

Я видел, что люди использовали правила в функции for-each, но я не знаю как это работает (я не разработчик, я только консультант по онлайн-маркетингу).

Для этого я попробовал

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="items">
  <!-- start the items -->
 <xsl:call-template name="item" />
 </xsl:template>
 <xsl:template name="item">
    <xsl:for-each select="item and LogResults/Result[visibility='copernica']">
      <xsl:sort select="price" order="ascending"/>
<xsl:choose>
       <xsl:when test="position() &lt;= 4">

Но это тоже не сработало, я всегда получаю ошибку времени выполнения или ошибку элемент для каждого.

Я надеюсь, что кто-то может мне помочь!

...