Сохранение шаблона XSLT в веб-части Commerce Server 2009 - PullRequest
1 голос
/ 18 сентября 2010

При редактировании веб-части с описанием продукта Commerce Server у нас возникают большие трудности с внесением изменений в шаблон XSLT. Это не сложные изменения, просто небольшие незначительные изменения. С шаблоном проблем нет, я пробовал его в редакторе w3schools XSLT, и он отлично работает.

Я вставляю текст шаблона в диалоговое окно и нажимаю кнопку Сохранить, чтобы перезаписать шаблон.

Я получаю сообщение об ошибке "Ошибка сохранения XSLT: {0}"

Если вместо этого я отредактирую текст в диалоговом окне без использования другого редактора (и отформатирую, когда все CRLF будут удалены), это будет работать.

Что я делаю не так?

Я надеюсь, что вы можете редактировать текст вне предоставленного текстового поля, так как оно имеет NO форматирование

Вот как это выходит из текстового поля:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="html" version="1.0" indent="yes" /><xsl:template match="/products/product"><H1><xsl:value-of select="properties/property[@name='DisplayName']" /></H1></xsl:template></xsl:stylesheet>

одной строкой. Я хочу отредактировать это так:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" version="1.0" indent="yes" />
  <xsl:template match="/products/product">
    <H1>
      <xsl:value-of select="properties/property[@name='DisplayName']" />
    </H1>
  </xsl:template>
</xsl:stylesheet>

Намного приятнее.

1 Ответ

1 голос
/ 18 сентября 2010

Делайте это поэтапно :

  1. Вы можете написать свой XSLT с комфортом в IDE / редакторе по вашему выбору.

  2. Работайте над ним, пока он не будет удовлетворять всем требованиям.

  3. Наконец, обработайте свою таблицу стилей XSLT с помощью следующего преобразования и передайте результат на Commerce Server:

::

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="no"/>
    <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>
</xsl:stylesheet>

, когда выполняется это преобразованиеваш элегантно отформатированный код :

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" version="1.0" indent="yes" />
  <xsl:template match="/products/product">
    <H1>
      <xsl:value-of select="properties/property[@name='DisplayName']" />
    </H1>
  </xsl:template>
</xsl:stylesheet>

желаемый результат, приемлемый для Commerce Server, получается :

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="html" version="1.0" indent="yes"/><xsl:template match="/products/product"><H1><xsl:value-of select="properties/property[@name='DisplayName']"/></H1></xsl:template></xsl:stylesheet>
...