2016-08-02 2 views
0

まず、投稿に愚かなことを言うと、私の謝罪を受け入れてください!私は本当にこのプログラミング言語を理解していないし、これまでに試行錯誤してきただけです!Magento出力ファイルのファイル名を短くする

Magentoオーダーをファイルに出力しようとしました。私たちのPOSにアップロードする準備が整いました。

<?xml version="1.0"?> 
<files> 
<file filename="%lastincrementid%.txt"> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl"> 
<xsl:output method="text"/> 

<xsl:variable name="sepstart" select="'&#34;'"/> <!-- &#34; field start seperator, including '' --> 
<xsl:variable name="sepend" select="'&#34;,'"/> <!-- field end seperator, including '' --> 

<xsl:template match="/"> 

<xsl:for-each select="orders/order"> 
<xsl:for-each select="items/item"> 
<xsl:value-of select="$sepstart" /><xsl:value-of select="normalize-space(sku)"/><xsl:value-of select="$sepend" /> 
<xsl:value-of select="$sepstart" /><xsl:value-of select="normalize-space(qty)"/><xsl:value-of select="$sepend" /> 
<xsl:value-of select="$sepstart" /><xsl:value-of select="normalize-space(price)"/><xsl:value-of select="$sepend" /> 
<xsl:value-of select="$sepstart" /><xsl:value-of select="normalize-space(row_total)"/><xsl:value-of select="$sepend" /> 
<xsl:value-of select="$sepstart" /><xsl:value-of select="normalize-space(../../increment_id)"/><xsl:value-of select="$sepend" /> 

<xsl:text>&#xD;&#xA;</xsl:text> 
</xsl:for-each> 
</xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 
</file> 
</files> 

%のlastincrementidの%の形式は、ファイル名が、現在この9桁の数字になるように設定されている100007654.

などの9桁の数字ですが、私:ここ

は、私のこれまでのテンプレートですそれは最後の4桁、つまり7654にしたいと考えています。

誰も私がそれについてどのように見せてくれるのか分かりますか?私は... substring()を使用してみてください

+0

謝罪。私は誤って、ファイル名が現在設定されている%lastincrementid%ではなく、increment_idを使用したかったと言っています。 –

+0

"私はこのプログラミング言語を本当に理解していないし、これまでに試行錯誤してきただけです!どういう意味なのかよく分かりませんが、XSLTの入門書を読むことを強くお勧めします。トレイルとエラーでうまく動作するのは、主題の種類ではありません。 – LarsH

+0

'%lastincrementid%'は実際にはXSLT構造体ではありません。さらに、あなたのXSLTスタイルシート 'xsl:stylesheet'が' file'要素の中にネストされていることに気付きました。それ自体は有効なXSLTにならないでしょう。これは実際にはXSLTの質問ではないかもしれないが、あなたが与えられた答えのコメントで言及しているこの "マグネト"についてのより多くの質問を示唆している。 "magneto"をタグとして追加して、あなたの質問に少し詳しく説明する価値があります。ありがとう! –

答えて

1

:-) ........永遠に感謝される

<xsl:value-of select="substring(normalize-space(../../increment_id),6,4)"/> 

編集(達成されるようにしようとしているもので、完全な推測)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:php="http://php.net/xsl"> 
    <xsl:output method="text"/> 

    <xsl:variable name="sepstart" select="'&#34;'"/> 
    <!-- &#34; field start seperator, including '' --> 
    <xsl:variable name="sepend" select="'&#34;,'"/> 
    <!-- field end seperator, including '' --> 

    <xsl:template match="/"> 
    <xsl:variable name="id">%lastincrementid%</xsl:variable> 
    <files> 
     <file filename="{substring($id,6,4)}.txt"> 

     <xsl:for-each select="orders/order"> 
      <xsl:for-each select="items/item"> 
      <xsl:value-of select="$sepstart"/> 
      <xsl:value-of select="normalize-space(sku)"/> 
      <xsl:value-of select="$sepend"/> 
      <xsl:value-of select="$sepstart"/> 
      <xsl:value-of select="normalize-space(qty)"/> 
      <xsl:value-of select="$sepend"/> 
      <xsl:value-of select="$sepstart"/> 
      <xsl:value-of select="normalize-space(price)"/> 
      <xsl:value-of select="$sepend"/> 
      <xsl:value-of select="$sepstart"/> 
      <xsl:value-of select="normalize-space(row_total)"/> 
      <xsl:value-of select="$sepend"/> 
      <xsl:value-of select="$sepstart"/> 
      <xsl:value-of select="normalize-space(../../increment_id)"/> 
      <xsl:value-of select="$sepend"/> 

      <xsl:text>&#xD;&#xA;</xsl:text> 
      </xsl:for-each> 
     </xsl:for-each> 
     </file> 
    </files> 
    </xsl:template> 

</xsl:stylesheet> 
+0

すばらしい提案をありがとう。それを追加すると、次のエラーメッセージが表示されます。エラー:このプロファイルのXSLテンプレートを修復してください。 \t 3行目:名前空間接頭辞xsl on value-ofが定義されていません –

+1

@RachelMoore - xsl:value-ofのどこを使用しようとしていますか?このエラーから、xsl:stylesheetの外で使用しているようです。 XMLの例を追加すると、完全な例を追加できます。 –

+0

私はプログラマーではなく、実際に私がやっていることを理解していないので、私は苦労しています! Magentoから注文を出そうとしています。上にコピーして貼り付けたXSLテンプレートは100007302.txtのファイル名を与えますが、私はそれを7302.txtにする必要があります。テンプレートをテストして出力ファイルを表示できるので、この質問にファイルを添付できますか? –

関連する問題