XPATH - 如何使用OR语句获取div类?

时间:2013-12-10 06:40:29

标签: xpath

我正在使用XPATH从html网页中获取信息。有时网址会在某些页面上稍微改变但是我需要的“新网址”会显示在具有特定类别的div中的旧网址上。

所以我需要做的是有一个XPATH查询来查找这个div并返回它的内容 - href - 或者只返回旧的URL。

如何为此编写查询?

例如:

<div class='old-url'>www.example.com/old-url</div>

<div class='new-url'>www.example.com/new-url</div>

所以我想基本上说'回复旧的那个,除非你看到那个新的那个,如果是这样的话,请返回新的。

以下是一个示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<link rel="alternate" hreflang="en" href="http://www.example.com"/>

<div id="" class="pgLinks">
<a href="/example-text" class="guiArw sprite-pagePrev ">&laquo;</a>
<a href="/example-text-2" class="paging taLnk ">1</a>
<span class="paging pageDisplay">2</span>

1 个答案:

答案 0 :(得分:0)

让我们说你有这个xml(作为你的HTML的一部分):

<div>
  <div class='new-url'>www.example.comnew-url</div>
  <div class='old-url'>www.example.comold-url</div>
</div>

想法是选择两者,但只有当new-url元素的数量为0时才使用old-url:

/div/div[@class='new-url' or (@class='old-url' and count(./../div[@class='new-url'])=0)]