2014-12-29 11 views
1

XSL 스타일 시트를 작성하여 Shopify에서 XML 날짜 출력의 형식을 지정합니다.XSL 날짜 형식 구문 분석

출력이란 무엇입니까?

<created-at type="dateTime">2014-12-23T14:27:53-05:00</created-at> 

는 그리고 나는 내가 'T'를 제거하거나 끝에 시간대 스탬프를 클립하는 방법 만 잘 모르겠어요

<created-at type="dateTime">2014-12-23 14:27:53</created-at> 

처럼 보이게을 조정해야합니다.

제안 사항?

현재 XSL 스타일 시트 (주문 날짜는 내가 조정하려고하는 것입니다.);

<xsl:template match="order"> 
    <html> 
     <head> 
      <title>St. Baldrick's Order #<xsl:value-of select="order-number" /></title> 
     </head> 
     <body> 
      <p> 
       Order Number: <xsl:value-of select="order-number" /><br /><!-- Their Order Number --> 
       Client ID: <xsl:value-of select="id" /><br /><!-- Internal Compass ID or Customer Account Number --> 
       First Name: <xsl:value-of select="first-name" /><br /><!-- Ship-to first name --> 
       Last Name: <xsl:value-of select="last-name" /><br /><!-- Ship-to last name --> 
       Order Date: <xsl:value-of select="created-at" /><br /><!-- Order Date --> 
      </p> 
     </body> 
    </html> 
</xsl:template> 

+0

현재 XLST 스타일 시트를 보여주십시오. 그래야만 즉시 유용한 답변을 제공해 드릴 수 있습니다. –

+0

@ MathiasMüller XSLT – Newcombe

답변

1

한 가지 방법은 전체 노드를 일치하는 단지 예로서, 그 것이해야 할 일

<xsl:template match="created-at"> 
    <xsl:copy> 
    <xsl:attribute name="type" select="@type"/> 
    <xsl:value-of select="substring(translate(.,'T', ' '),1,string-length()-6)"/> 
    </xsl:copy> 
</xsl:template> 

결과 : <created-at type="dateTime">2014-12-23 14:27:53</created-at>

이는 공간이 translate()을 사용으로 T를 대체 substring()을 사용하여 마지막 6자를 자릅니다.

업데이트 : 주석에서 언급 한 바와 같이, 경우에 날짜 형식 HH 항상 : MM : SS는 substring()string-length() 제거 할 수 있고, 들어 <xsl:value-of select="substring(translate(.,'T', ' '),1,19)"/>

에 간단 선택 식 단지 order 일치하는 원본 템플릿을 추가 :

012,384이에

Order Date: <xsl:value-of select="created-at" /> 

: 당신은 그냥 변경할 경우 작동합니다

+0

** 1로 업데이트했습니다. ** 문자열에는 '0'위치가 없습니다. 첫 번째 문자는 '1'위치에 있습니다. ** 2 ** ** 시간은 hh : mm : ss 형식으로 가정하면 식을'substring (translate (., 'T', ''), 1, 19)'로 단순화 할 수 있습니다. –

+0

@ michael.hor257k 조언을 주셔서 감사합니다. 1.에 관해서는 테스트 한 xslt 프로세서에서 작동한다는 것이 이상합니다. –

+0

필자는''및' "created-at"/> "의 적절한 위치에 앞뒤에 추가하려고 시도했지만 아무 소용이 없습니다. @matthias_h가 잘못 되었나요? – Newcombe