如何只用一个 xpath 获取这个值?

How to get this value with only one xpath?

我想要一个能够在所有情况下 select 日期和时间(比如 2020 年 6 月 19 日 08:59 下午)的 XPATH:

<span class="post_date"><span title="June 21, 2020 at 08:18 AM" currentmouseover="12">1 hour ago</span> <span class="post_edit" id="edited_by_2462600"> </span></span>

<span class="post_date" currentmouseover="62">June 19, 2020 at 08:56 PM <span class="post_edit" id="edited_by_2454907"> </span></span>

<span class="post_date" currentmouseover="157"><span title="June 20, 2020" currentmouseover="168">Yesterday</span> at 10:41 AM <span class="post_edit" id="edited_by_2457722"> </span></span>

我可以使用 //*[@class="post_date"]/text() 轻松获得第二个,但是有没有办法获得其他 2 个并且在所有情况下都有 1 个 xpath?还是我最好为此编写一个函数?

谢谢

对 select 所有日期使用一个表达式的工作 XPath 表达式:

(//@title|//text())[contains(.,", ") or contains(.," at ")]

输出:4 个节点

编辑:如果您需要更强的东西(假设所有消息都是在 2000 年之后发布的)。

//span[@class='post_date']/span[contains(@title,', 20')]/@title|//span/text()[contains(.,' at ') and contains (.,':')][ancestor::*[1][self::span][@class='post_date']]

或:

(//span[@class='post_date']/span[@title]/@title|//span/text()[ancestor::*[1][self::span][@class='post_date']])[contains(.,', 20') or contains(.,' at ')]

输出:4 个节点