use*_*908 2 xml xslt xpath xslt-2.0
我正在努力解决一个问题 - 我试图在 XSLT 中插入当前日期时间,但由于语法不正确而出错。我的 XML 文件没有日期时间,因此我需要在 XSLT 文件中插入当前日期时间(带有属性的 date="") - 请看下面:
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>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在 XSLT 中格式化正确的日期时间。也许我的代码是错误的。谢谢你的帮助 :)
问题可能不在于“current-dateTime()”函数,而在于属性的名称:
<xsl:attribute name="Header/date">
Run Code Online (Sandbox Code Playgroud)
您不应在此处指定 xpath 表达式,而应仅指定属性的名称,它将被添加到您输出的最新元素中
<xsl:attribute name="date">
Run Code Online (Sandbox Code Playgroud)
您实际上也不需要首先在Header上指定“date”属性(尽管这不会破坏任何内容,因为xsl:attribute会覆盖它)。这应该有效:
<Header testCode="Test_3334" testId="">
<xsl:attribute name="date">
<xsl:value-of select="current-dateTime()"/>
</xsl:attribute>
Run Code Online (Sandbox Code Playgroud)
实际上,您可以使用属性值模板来简化这一过程。尝试这个
<Header testCode="Test_3334" testId="" date="{current-dateTime()}">
Run Code Online (Sandbox Code Playgroud)
请注意,您需要使用 XSLT 2.0 处理器才能使 dateTime 函数工作。
| 归档时间: |
|
| 查看次数: |
6021 次 |
| 最近记录: |