我正在使用 WP All Import 插件每天导入包含数千条记录的 csv 文件,但我不需要所有这些,只需要已更新的那些。csv 文件中有一个“最后修改”列,我想将其与今天的日期进行比较并过滤掉任何不匹配的内容。
wp all import 让您使用 xpath 执行此操作,但我不知道如何在其中引用今天的日期,有人可以帮忙吗?
亲切的问候,
我正在使用 WP All Import 插件每天导入包含数千条记录的 csv 文件,但我不需要所有这些,只需要已更新的那些。csv 文件中有一个“最后修改”列,我想将其与今天的日期进行比较并过滤掉任何不匹配的内容。
wp all import 让您使用 xpath 执行此操作,但我不知道如何在其中引用今天的日期,有人可以帮忙吗?
亲切的问候,
XPath 2.0 解决方案(将其粘贴在 XPath 字段中)以保留当天的记录:
/node[@last_modified[concat(substring(.,7,4),substring(.,4,2),substring(.,1,2))=string(format-date(current-date(),"[Y][M01][D01]"))]]
我们用子字符串提取日期,将当前日期(XPath 2.0 函数:不确定 WP 支持它)转换为字符串,然后比较它们。我们最后把这个条件放在括号里。
编辑:好的。last_modified 是一个元素而不是一个属性。所以只需从表达式中删除“@”:
/node[last_modified[concat(substring(.,7,4),substring(.,4,2),substring(.,1,2))=string(format-date(current-date(),"[Y][M01][D01]"))]]
如果它不起作用,只需在元素后添加 '[1]' :
/node[last_modified[1][concat(substring(.,7,4),substring(.,4,2),substring(.,1,2))=string(format-date(current-date(),"[Y][M01][D01]"))]]
编辑 2:要完整,要使用 XPath 1.0 保留当天的记录,您必须手动输入当天的日期(以下示例中的“20190820”,相应地进行更改)
//*[last_modified[1][concat(substring(.,7,4),substring(.,4,2),substring(.,1,2))=20190820]]
/node[last_modified[1][concat(substring(.,7,4),substring(.,4,2),substring(.,1,2))=20190820]]
使用 XPath 2.0,检查日期的过程应该是自动的(但插件似乎不支持它):
//*[last_modified[1][concat(substring(.,7,4),substring(.,4,2),substring(.,1,2))=string(format-date(current-date(),"[Y][M01][D01]"))]]