gpt4 book ai didi

xml - xpath 日期比较

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

我正在尝试根据格式为日期的属性过滤元素 yyyy-MM-dd

我的 XML 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<root>
<article title="wired" pub-date="2010-11-22" />
<article title="Plus 24" pub-date="2010-11-22" />
<article title="Finance" pub-date="2010-10-25" />
</root>

我的 xpath 尝试:

'//article[xs:date(./@pub-date) > xs:date("2010-11-15")]'

除非绝对必要,否则使用 xpath 2.0 将避免添加模式。

来自评论:

I believe I must be missing something then. Is it possible that I need to specify something else for xs:date to work? Maybe a xs: namespace definition?

最佳答案

在 XPath 1.0 和 2.0 中您都可以使用:

//article[number(translate(@pub-date,'-','')) > 20101115]

你的 XPath 2.0 表达式是正确的,使用 Saxon 9.0.3 这个转换:

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

<xsl:template match="/">
<xsl:sequence select="//article[xs:date(./@pub-date) > xs:date('2010-11-15')]"/>
</xsl:template>
</xsl:stylesheet>

应用于提供的 XML 文档时:

<root>
<article title="wired" pub-date="2010-11-22" />
<article title="Plus 24" pub-date="2010-11-22" />
<article title="Finance" pub-date="2010-10-25" />
</root>

产生想要的、正确的结果:

<article title="wired" pub-date="2010-11-22"/>
<article title="Plus 24" pub-date="2010-11-22"/>

关于xml - xpath 日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4347320/

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