Помогите кто силен xsl немного подправить с доп свойством товара

#
Помогите кто силен xsl немного подправить с доп свойством товара
Это почти стандартный шаблон доп свойств. Не получается вывести значение
"property[@xml_name='sfdoit_name']/value"


<xsl:template match="property" mode="dop">
               <xsl:if test="value != '' or (type = 1 and file_path != '')">
                  
                  <!--<b><xsl:value-of select="name"/></b>-->
                  
                  <xsl:choose>
                     <xsl:when test="type = 1">
                                                                  <xsl:choose>
                               <xsl:when test="property[@xml_name='sfdoit_name']/value != ''">
                                     <p align="right"><a href="{file_path}" target="_blank"><xsl:value-of select="property[@xml_name='sfdoit_name']/value"/></a></p>
                               </xsl:when>

                               <xsl:otherwise>
                                <p align="right"><a href="{file_path}" target="_blank">Больше информации?</a></p>
                               </xsl:otherwise>
                         </xsl:choose>
                                                         </xsl:when>
                     <xsl:when test="type = 7">
                        <xsl:choose>
                           <xsl:when test="value = 1">
                              <input type="checkbox" checked="" disabled="" />
                           </xsl:when>
                           <xsl:otherwise>
                              <input type="checkbox" disabled="" />
                           </xsl:otherwise>
                        </xsl:choose>
                     </xsl:when>
                     <xsl:otherwise>
                     <!--<p align="right"><a href="{value}" target="_blank">Больше информации?</a></p>-->
                     </xsl:otherwise>
                  </xsl:choose>
               </xsl:if>
               
            </xsl:template>


А именно выделенное не выводится.


в <xsl:otherwise> ее не впихнуть т.к. тогда шаблон в другом месте нужно переделывать.

Мне кажется чтобы заработало нужно в <xsl:when test="type = 1"> что то изменить, но вот что?
#
Re: Помогите кто силен xsl немного подправить с доп свойством товара

<xsl:template match="property" mode="dop">
               <xsl:if test="value != '' or (type = 1 and file_path != '')">
                  
                  <!--<b><xsl:value-of select="name"/></b>-->
                  
                  <xsl:choose>
                     <xsl:when test="type = 1">
                              <xsl:choose>
                               <xsl:when test="@xml_name='sfdoit_name'">
                                <p align="right"><a href="{file_path}" target="_blank"><xsl:value-of select="value"/></a></p>
                               </xsl:when>
                               <xsl:otherwise>
                                <p align="right"><a href="{file_path}" target="_blank">Больше информации?</a></p>
                               </xsl:otherwise>
                         </xsl:choose>
                                                         </xsl:when>
                     <xsl:when test="type = 7">
                        <xsl:choose>
                           <xsl:when test="value = 1">
                              <input type="checkbox" checked="" disabled="" />
                           </xsl:when>
                           <xsl:otherwise>
                              <input type="checkbox" disabled="" />
                           </xsl:otherwise>
                        </xsl:choose>
                     </xsl:when>
                     <xsl:otherwise>
                     <!--<p align="right"><a href="{value}" target="_blank">Больше информации?</a></p>-->
                     </xsl:otherwise>
                  </xsl:choose>
               </xsl:if>
              
            </xsl:template>


type = 1 - это тип доп. свойства - файл
#
Re: Re: Помогите кто силен xsl немного подправить с доп свойством товара
Все равно вот это условие не выводится :
<xsl:when test="@xml_name='sfdoit_name'">
                                <p align="right"><a href="{file_path}" target="_blank"><xsl:value-of select="value"/></a></p>
                               </xsl:when>

Выводится только  <xsl:otherwise>

@xml_name='sfdoit_name'(доп свойство типа "строка" это я пытаюсь имя ссылки задать, если его нет тогда фраза "Больше информации?"
#
Re: Помогите кто силен xsl немного подправить с доп свойством товара
похоже весь вызов этого шаблона используется только для вывода этой ссылки)

можно весь вызов шаблона
<xsl:apply-templates match="property"/>

заменить на

<a href="ссылка">
<xsl:choose>
<xsl:when test="property[@xml_name='sfdoit_name']/value!=''"><xsl:value-of disable-output-escaping="yes" select="property[@xml_name='sfdoit_name']/value"/><xsl:when>
<xsl:otherwise>Больше информации?</xsl:otherwise>
</xsl:choose>
</a>
#
Re: Re: Помогите кто силен xsl немного подправить с доп свойством товара
У меня просто к товару есть еще доп свойства @xml_name='sfdoit', их я смог "прикрепить", но не через "templates":

<!-- Свойства в корневой группе -->
                                          <xsl:if test="count(property[@dir_id = 65])">
                                             <xsl:apply-templates select="property[@dir_id = 65]" mode="dop"/>
                                          </xsl:if>
                                       </xsl:if>

                                       <!--Доп описание в виде ссылки на файл или страницу и название ссылки (хорошо бы инсталировать в шаблон выше)-->
                                       <xsl:if test="property[@xml_name='sfdoit']/value != ''">
                                          <xsl:choose>
                                             <xsl:when test="property[@xml_name='sfdoit_name']/value != ''">
                                                <p align="left"><a href="{property[@xml_name='sfdoit']/value}" target="_blank">
                                                      <xsl:value-of disable-output-escaping="yes" select="property[@xml_name='sfdoit_name']/value"/>
                                                   </a>
                                                </p>
                                             </xsl:when>
                                             <xsl:otherwise>
                                             <p align="right"><a href="{property[@xml_name='sfdoit']/value}" target="_blank">Больше информации?</a></p>
                                             </xsl:otherwise>
                                          </xsl:choose>
                                       </xsl:if>


и я хотел это все объединить в один шаблон даже в скобках себе это подписал. Но не очень выходит. Тем более у меня товар выводится четырмя типами. И проще сделать это одним шаблоном
<xsl:apply-templates select="property[@dir_id = 65]" mode="dop"/>.



#
Re: Помогите кто силен xsl немного подправить с доп свойством товара
Попытался соединить в шаблон, но что то не очень хочет работать.
Может кто поможет подредактировать
Вводные такие:
property[@xml_name='sfdoit'] - свойство типа "строка" ( в него вносится url ссылка )
property[@xml_name='sfdoit_name'] - свойство типа строка (в него вностится название ссылки)
property[@xml_name='doit'] - свойство типа "файл"

Задача: выбирается методом choose для вывода свойства sfdoit(url ссылка) или doit(файл)
а внутри еще выбирается наличие или отсутсвие свойства sfdoit_name (имя ссылки)

Я сделал шаблон, но работает он не совсем правильно работает

<xsl:template match="property" mode="dop">
               <xsl:if test="value != '' or (type = 1 and file_path != ''">                  
                  <xsl:choose>
                     <xsl:when test="type = 1">
                        <xsl:choose>
                           <xsl:when test="property[@xml_name='sfdoit_name']/value != ''">
                           <p align="right"><a href="{file_path}" target="_blank">
                                                                        <xsl:value-of disable-output-escaping="yes" select="property[@xml_name='sfdoit_name']/value"/></a></p>
                           </xsl:when>
                           <xsl:otherwise>
                           <p align="right"><a href="{file_path}" target="_blank">Больше информации?</a></p>
                           </xsl:otherwise>
                        </xsl:choose>
                     </xsl:when>
                     
                     <xsl:otherwise>
                        <xsl:choose>
                           <xsl:when test="property[@xml_name='sfdoit_name']/value != ''">
                           <p align="left"><a href="property[@xml_name='sfdoit']/value" target="_blank">
                           <xsl:value-of disable-output-escaping="yes" select="property[@xml_name='sfdoit_name']/value"/>
                           </a></p>
                           </xsl:when>
                           <xsl:otherwise>
                           <p align="right"><a href="property[@xml_name='sfdoit']/value" target="_blank">Больше информации?</a></p>
                           </xsl:otherwise>
                        </xsl:choose>
                     </xsl:otherwise>
                                                        
                  </xsl:choose>
               </xsl:if>
            </xsl:template>

Может кто подскажет где подправить
#
Re: Помогите кто силен xsl немного подправить с доп свойством товара
Сделал
Авторизация