我正在努力解决问题 - 我试图在XSLT中插入当前日期时间,但由于语法不正确而出现错误。我的XML文件没有日期时间,因此我需要在XSLT文件中插入当前日期时间(date =“”with attribute) - 请看下面的内容:
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 :(得分:3)
问题可能不是“current-dateTime()”函数,而是属性名称:
<xsl:attribute name="Header/date">
你不应该在这里指定一个xpath表达式,但字面上只是属性的名称,它将被添加到你输出的最新元素
<xsl:attribute name="date">
您实际上也不需要首先在标题上指定“日期”属性(尽管这不会破坏任何内容,因为 xsl:attribute 将覆盖它)。这应该有效:
<Header testCode="Test_3334" testId="">
<xsl:attribute name="date">
<xsl:value-of select="current-dateTime()"/>
</xsl:attribute>
实际上,您可以使用Attriute Value Templates简化此操作。试试这个
<Header testCode="Test_3334" testId="" date="{current-dateTime()}">
请注意,您需要使用XSLT 2.0处理器才能使dateTime函数正常工作。