可以使用 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>
由于我是 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>