我正在使用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 ">«</a>
<a href="/example-text-2" class="paging taLnk ">1</a>
<span class="paging pageDisplay">2</span>
答案 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)]