2013-10-16 49 views
0

我正在努力解決問題 - 我試圖在XSLT中插入當前日期時間,但由於語法不正確而導致錯誤。我的XML文件沒有日期時間,因此我需要插入的XSLT文件當前日期時間(日期= 「」 帶屬性) - 看看下面:XSLT - 如何以正確的方式插入當前日期時間

XSLT:

<TestList> 
    <Header testCode="Test_3334" testId="" date=""> 
    <xsl:attribute name="Header/date"> 
     <xsl:value-of select="current-dateTime()"/> 
     </xsl:attribute> 
    <Validation TestName="{Header/Validation/TestName}" TestSurname="{Header/Validation/Surname}" checksum="{Header/Validation/Checksum}" /> 
    </Header> 
    <Tests> 
    <xsl:apply-templates select="Tests/Test"/> 
    </Tests> 
</TestList> 

是有什麼方法可以在XSLT中格式化正確的日期時間。也許我的代碼是錯誤的。感謝您的幫助:)

+0

您使用的是什麼XSLT分析器? –

+0

永遠不要告訴我們「我得到了一個錯誤」。告訴我們錯誤是什麼。爲什麼要求我們解決矇眼的問題?你可能不瞭解錯誤信息,但我們可能會。 –

回答

3

問題可能與「當前,DATETIME()」功能,但與屬性的名稱:

<xsl:attribute name="Header/date"> 

你不應該在這裏指定一個XPath表達式,但真的只是屬性的名稱,它會被添加到最近的元素,您有輸出

<xsl:attribute name="date"> 

也實際上並不需要對標題指定「日期」的屬性第一無論(雖然那不會破壞任何東西,因爲xsl:屬性將覆蓋它)。這應該工作:

<Header testCode="Test_3334" testId=""> 
    <xsl:attribute name="date"> 
     <xsl:value-of select="current-dateTime()"/> 
    </xsl:attribute> 

其實,你可以用Attriute值模板簡化了這一點。試試這個

<Header testCode="Test_3334" testId="" date="{current-dateTime()}"> 

請注意,您需要使用XSLT 2.0處理器才能使用dateTime函數。

相關問題