这是我的代码:
!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/page-59.html"/>
<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>
当我运行此查询时,它会返回页面“http://www.example.com/page-59.html”上的顶部网址,或者如果此处存在“1”,则返回
<a href="/example-text-2" class="paging taLnk ">1</a>
它从href返回URL:
/example-text-2
问题是我想要完整的网址:
http://www.example.com/example-text-2
我基本上需要在第二部分添加一个URL,以便它加入第二个结果(如果存在),所以它是这样的:
(//link[@hreflang='en'] | "SITE URL HERE" //div[@class='pgLinks']/a[.='1'])[last()]/@href
我尝试过concat:
(//link[@hreflang='en'] | concat("http://www.example.com", //div[@class='pgLinks']/a[.='1']))[last()]/@href)
还有很多其他变种,包括使用管道“|”但根本无法理解。
感谢任何帮助。
答案 0 :(得分:0)
假设您只支持xpath 1.0,则可以执行xpath:
concat(
substring(
concat(
'http://www.example.com',
//div[@class='pgLinks']/a[.='1']/@href
),
1 div boolean(//div[@class='pgLinks']/a[.='1'])
),
substring(
//link[@hreflang='en']/@href,
1 div not(//div[@class='pgLinks']/a[.='1'])
)
)