Как использовать Xpath для фильтрации поля даты в плагине Wordpress? - PullRequest
0 голосов
/ 27 марта 2020

Я использую плагин WP All Import для импорта CSV-файла с тысячами записей каждый день, но мне не нужны все они, только те, которые были обновлены. В csv-файле есть столбец «последнего изменения», который я хотел бы сравнить с сегодняшней датой и отфильтровать все, что не соответствует.

Wp весь импорт, давайте сделаем это с помощью xpath, но я Понятия не имею, как ссылаться на сегодняшнюю дату, кто-нибудь может помочь?

WP All Import xpath screen.png

С уважением,

1 Ответ

0 голосов
/ 27 марта 2020

Решение 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 процесс проверки даты должен выполняться автоматически c (но, похоже, плагин не поддерживает его):

//*[last_modified[1][concat(substring(.,7,4),substring(.,4,2),substring(.,1,2))=string(format-date(current-date(),"[Y][M01][D01]"))]]
...