可以使用 Xpath 函数来读取日期值

It is possible to use Xpath function in order to read the date value

由于我是 Xpath 的新手,所以我想问一下是否可以使用 Xpath 函数来读取下面的日期值

<div id="qa-case"> 
<time itemprop="datePublished" datetime="2015-01-12T02:41:00Z"></time>
</div>

我想要的是日期时间中的值。是否可以使用类似这样的方式阅读它

//*[@id="qa-case"]fn:string(datetime)

我期望的是有一条文本显示 2015-01-12T02:41:00Z

提前致谢

我们不知道您使用的是哪个版本的 XPath。在 XPath 1.0 中,函数必须围绕其他所有内容,因为它们不能成为路径表达式中的步骤:

string(//div[@id = 'qa-case']/time/@datetime)

这仅适用于一个 time 元素节点,因此适用于一个 datetime 属性。


在 XPath 2.0 中你也可以这样做

//div[@id = 'qa-case']/time/@datetime/string()

两种情况下的结果都是

2015-01-12T02:41:00Z

为了给出更具体的答案,我们需要更多地了解您在(例如 XSLT)中使用 XPath 的环境。

要仅获取文本,您实际上不需要任何日期函数,只需 //div[@id="qa-case"]/@datetime

如果您想转换为更易读的格式,您可以使用特定于日期的 XPath 函数,例如:

<p>Today is <xsl:value-of="fn:day-from-dateTime(@datetime)" </p>