1

Commerce Server の製品詳細 Web パーツを編集するとき、XSLT テンプレートを変更するのは非常に困難です。これらは複雑な変更ではなく、小さなマイナーな変更です。w3schools XSLT エディターで試してみたところ、テンプレートに問題はなく、問題なく動作しました。

ダイアログにテンプレート テキストを貼り付け、[保存] をクリックしてテンプレートを上書きします。

「XSLT の保存中にエラーが発生しました: {0}」というエラーが表示されます

代わりに、別のエディターを使用せずにダイアログ内のテキストを編集すると (すべての CRLF が削除されるため、書式設定も行われません)、機能します。

私は何を間違っていますか?

書式設定がないため、提供されているテキストボックスの外側のテキストを編集できることを願っています

これがテキストボックスからどのように出てくるかです:

<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行として。次のように編集したいと思います。

<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>

ずっといい。

4

1 に答える 1

1

手順でこれを行います

  1. 選択した IDE/エディターでXSLT を快適に作成できます。

  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>
于 2010-09-18T14:54:35.217 に答える