php - xpath php基于大于日期的排序属性

标签 php xml xpath

需要基于大于日期属性来 xpath xml 数据。下面日期中的破折号阻止大于号起作用。有没有办法即时删除 xml 中的破折号?

XML

<revisions>
  <revision date="2010-07-12">blah</revision>
  <revision date="2010-06-12">blah</revision>
</revisions>

PHP

$rdate = 2010-07-01;
$programs = $item->xpath("/programs/program[revisions/revision[@date>'".$rdate."']]");

最佳答案

你可以尝试:

$rdate = 20100701;

/programs/program[revisions/revision[translate(@date,'-','') > '20100701']

编辑:应该注意,在 XPath 2.0 中,可以使用 compare() 函数(-1 较小,0 等于,1 较高),因此您可以只比较字符串。据我所知,大多数 PHP 实现仍在使用 XPath 1.0。

关于php - xpath php基于大于日期的排序属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3358429/

相关文章:

php - 如何使用dom php解析器

c# - 由于单引号,XpathNavigator 给出 System.Xml.XPath.XPathException

python - Selenium 中难以按下的按钮

xml - 在 Wiremock 中评估返回 bool 值的表达式 - 请求匹配条件

php - 如何在 cakephp 中创建带有联接的查询

PHP OOP 接口(interface)类型继承

php - Laravel 复合 key 验证

xml - 如何检查 XML 文件中是否存在节点?

java - Android - 当应用程序被终止并重新启动时首选项不保存?

python regex xpath - 正则表达式 XPATH 的属性