xpath 日期比较
我正在尝试根据格式为 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 - 除非绝对必要,否则将避免添加架构。
来自评论:
我相信我一定错过了一些东西 然后。我是否有可能需要 为 xs:date 指定其他内容 工作?也许是 xs: 命名空间 定义?
I'm trying to filter elements based on an attribute that is a date in the format yyyy-MM-dd
.
My XML looks like this:
<?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>
My xpath attempt:
'//article[xs:date(./@pub-date) > xs:date("2010-11-15")]'
Using xpath 2.0 - would avoid adding a schema unless absolutely necessary.
From comments:
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 XPath 1.0 和 2.0 中您都可以使用:
您的 XPath 2.0 表达式是正确的,使用 Saxon 9.0.3 进行此转换:
应用于提供的 XML 文档时< /strong>:
产生想要的正确结果:
In both XPath 1.0 and 2.0 you can use:
Your XPath 2.0 expression is correct, using Saxon 9.0.3 this transformation:
when applied on the provided XML document:
produces the wanted, correct result: