XPATH - 如何使用OR语句/以先到者为准搜索两个不同的类

时间:2013-12-09 12:38:57

标签: xpath

我正在抓取3个不同网页的网址,但希望结果位于同一字段中。 3个网页使用不同的日期标记,例如:

<div id="date_65"/>
<div class="date_today"/>
<div id="date_now"/>

有什么方法可以在XPATH中创建某种'OR'语句来处理这些差异。

此外,是否有可能让XPATH只抓住它看到的第一个并忽略其他任何一个?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

怎么样

(//div[starts-with(@id, 'date_') or starts-with(@class, 'date_')])[1]

答案 1 :(得分:1)

如果您需要匹配许多不同且可能未知的元素,请使用Ian Roberts的解决方案。如果它只是那三个(或者你不想匹配前缀),那就去吧:

//div[@id="date_65" or @class="date_today" or @id="date_now"]

如果你有XPath 2.0的支持,你也可以使用它的比较运算符的集合语义(每个集合中有一个元素):

//div[(@id, @class) = ("date_today", "date_now", "date_65")].