gpt4 book ai didi

xml - 使用 XSLT 计算 XML 中两个日期的天数

转载 作者:数据小太阳 更新时间:2023-10-29 01:52:04 25 4
gpt4 key购买 nike

我现在已经进行了大约 5 个小时,尝试准确地尝试在 Google 上找到的每个带有搜索词“xml xslt 计算日期之间的天数”的示例,我发现这些示例只需要从“date.xml”中获取两个日期。 xml”文件并计算日期之间的天数,格式为“YYYY-MM-DD”(下面的示例没有这种格式,但这是我需要的唯一格式)

我终于找到了这个页面::https://forums.oracle.com/thread/2432132

可以在以下位置验证解决方案:http://xslttest.appspot.com/

但是,将“date.xml/date.xslt”保存在本地主机上,试图在 Internet Explorer、Google Chrome 或 Firefox 中打开该页面要么显示错误,要么根本不显示任何内容,而且似乎一直如此 - 没有信息是什么是错的。当文件位于网络服务器上时,也会发生同样的情况。

那么,为什么我不能尝试一个简单的例子,我发现每个人都说有解决方案或者我做错了什么?

上述示例中的 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="date.xslt"?>

<root>
<date1>2012-01-11T00:00:00.000-05:00</date1>
<date2>2012-01-15T00:00:00.000-05:00</date2>
</root>

上述示例中的 XSLT 文件:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions">

<xsl:template match="/">
<xsl:variable name="date1" select="xs:dateTime(/root/date1)"/>
<xsl:variable name="date2" select="xs:dateTime(/root/date2)"/>
<xsl:value-of select="fn:days-from-duration($date2 - $date1)"/>
</xsl:template>

</xsl:stylesheet>

将此添加到 XSLT 验证程序,它显示这两个日期之间的正确值“4”天。

我希望能够创建一个实际可以进行计算的文档,无论它们是日期还是数字,但目前这似乎是不可能的。获取日期数,然后使用该值进行一些计算。

最佳答案

您的样式表使用的是 XSLT 2.0 版,浏览器仅支持 XSLT 1.0 版。 XSLT 1.0 版不支持像 xs:dateTime 这样的数据类型和像 days-from-duration 这样的函数。因此,您需要使用 XSLT 2.0 处理器(如 Saxon 9(用于 Java 或 .NET)或 XmlPrime(用于 .NET)或 Saxon CE (in the browser))来运行 XSLT 2.0。 .

如果您想将 XSLT 1.0 与 EXSLT 一起使用,那么测试 http://home.arcor.de/martin.honnen/xslt/test2013121001.xml使用 http://www.exslt.org/date/functions/difference/date.difference.template.xsl在 Firefox、Opera 和 IE 的实际版本上对我来说完美无缺。

关于xml - 使用 XSLT 计算 XML 中两个日期的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20494549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com