Мучаюсь какой день уже, не знаю что и делать, помогите разобраться, может кто сталкивался с данной проблемой, пытаюсь построить список свойств с правильной сортировкой значений.
Пробую выводить так:
<xsl:apply-templates select="property_value">
<xsl:sort select="order" order="descending" data-type="number"/>
</xsl:apply-templates>
Шаблон:
<xsl:template match="property_value">
<xsl:if test="value/node() and value != '' or file/node() and file != ''">
<xsl:variable name="class_name"><xsl:choose><xsl:when test="position() mod 2 !=0">grey</xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose></xsl:variable>
<xsl:variable name="property_id" select="property_id" />
<xsl:variable name="property" select="/shop/shop_item_properties//property[@id=$property_id]" />
<dt><xsl:value-of select="$property/name"/></dt>
<dd class="{$class_name}">
<xsl:choose>
<xsl:when test="$property/type = 2">
<a href="{file_path}">Скачать файл</a>
</xsl:when>
<xsl:when test="$property/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>
<xsl:value-of disable-output-escaping="yes" select="value"/>
</xsl:otherwise>
</xsl:choose>
</dd>
</xsl:if>
</xsl:template>
Сортировка пляшет, с низу вверх или с верху вниз перебрасывает значений, но не сортирует их в правильном порядке как я задал в дополнительных свойствах товара указав цифры сортировки.
Торговая марка: motorola 1
Тип радиостанции: портативная 2
Диапазон частот: 400-470 МГц 3
и.т.д, данный способ не сортирует совершенно и хаотично раскидывает значения.
Так же пробовал вот так:
<xsl:apply-templates select="/shop/shop_item_properties//property"/>
Шаблон:
<xsl:template match="property">
<xsl:variable name="property_id" select="@id" />
<p><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></p>
<xsl:apply-templates select="/shop/shop_item/property_value[property_id = $property_id]" />
</xsl:template>
Тут намного интереснее, сортировка работает как надо, сортирует от 1 до конечного числа в правильном порядке значений, но выводит в значениях дополнительный мусор, такой как, код, xml тег, и.т.д а так же само название значения.
Торговая марка: 892 2979 motorola torgovaia-marka
Не понимаю как можно убрать лишний мусор и оставить лишь только имя значения, что бы в конечном итоге получилось
Торговая марка: motorola
Помогите пожалуйста решить данный вопрос.