2016-02-03 48 views
0

如何檢索使用XPath作爲有序列表中的列表項目存在的一組鏈接?我需要檢索從一個論壇的所有部分用下面的html代碼:使用XPath檢索有序列表中的所有鏈接

<div id="pagewrapper" class="fixed"> 
<div id="toplinks" class="toplinks" style="position: relative; top: 145px;"> 
<div class="above_body" style="height: 210px;"> 
<div class="body_wrapper"> 
<div id="breadcrumb" class="breadcrumb"> 
<div id="pagetitle"> 
<ol id="forums" class="floatcontainer"> 
<li id="cat3" class="forumbit_nopost new L1"> 
<div class="forumhead tcat foruminfo L1 collapse"> 
<div class="tbody_left"> 
<div class="tbody_right"> 
<ol id="c_cat3" class="childforum"> 
<li id="forum9" class="forumbit_post new L2"> 
<div class="forumrow table"> 
<div class="foruminfo td" style="padding-top: 12px; padding-bottom: 12px;"> 
<img id="forum_statusicon_9" class="forumicon" alt="" src="elitex360/statusicon/forum_new-48.png"> 
<div class="forumdata"> 
<div class="datacontainer"> 
<div class="titleline"> 
<h2 class="forumtitle"> 
<a href="https://forums.com/forum/index">Forum index</a> <!-- get this link --> 
</h2> 
</div> 
<p class="forumdescription"> 
</div> 
</div> 
</div> 
<h4 class="nocss_label">Forum Actions:</h4> 
<h4 class="nocss_label">Forum Statistics:</h4> 
<ul class="forumstats td" style="padding-top: 18px; padding-bottom: 12px;"> 
<div class="forumlastpost td"> 
</div> 
</li> 
<li id="forum22" class="forumbit_post new L2"> 
<li id="forum40" class="forumbit_post new L2"> 
</ol> 
<div class="tbody_under"></div> 
</div> 
</div> 
<div class="tfoot"> 
</li> 
<li id="cat4" class="forumbit_nopost new L1"> 
<li id="cat52" class="forumbit_nopost new L1"> 
<li id="cat5" class="forumbit_nopost new L1"> 
<li id="cat6" class="forumbit_nopost new L1"> 
<li id="cat7" class="forumbit_nopost old L1"> 
</ol> 

的部分鏈接我要找回被標記在上面的代碼中(<!-- get this link -->)。我現在使用以下字符串檢索所有列表項:

//div[@id='pagewrapper']/div[3]/ol 

檢索所有列表項。但我不知道如何「輸入」每個列表項並檢索鏈接標籤的內容。在我發現的例子中,需要知道列表項的數量prior來訪問它們。情況並非如此,因爲論壇可能有不同數量的列表項目(模板是針對論壇引擎的,而不是針對論壇的)。

如何檢索列表項中的所有鏈接?

+2

考慮將任何輸入樣本作爲代碼示例包含在stackoverflow中,而不是鏈接到圖像。至於XPath,如果你使用'// div [@ id ='pagewrapper']/div [3]/ol/li // a [@href]',你將選擇'li'列表項中的所有鏈接元素該有序列表中的元素。 –

+0

我很困惑。什麼「擦除線」?接下來,'// div [@ id ='pagewrapper']/div [3]/ol'不會給你列表項,它會給你列表。此外,示例HTML中的任何列表項目中都沒有單個鏈接。也許,而不是解釋你想要選擇的內容,寫下你想要選擇的HTML元素的確切列表。 – Tomalak

+0

@Tomalak在原來的帖子裏有一張圖片,裏面有我想提取的鏈接。我已經更新了這個問題。 – Sebi

回答

1

嘗試下面的XPath獲得的網址: -

//a[contains(.,'Forum index')]/@href 

如果你想在醇所有李鴻章爲我從你明白質疑那麼XPath是如下: -

//div[@id='pagewrapper']//li[@id='cat3']//ol//li 

我想下面是你期望中的XPath: -

//div[@id='pagewrapper']//div/@href 

希望它會幫助你:)

+0

我試圖讓索引頁上的所有subforums(部分)。上面的答案只檢索一個(匹配'論壇索引'的那個) – Sebi

+0

子表單意味着所有的li? –

+0

subforum =鏈接到論壇,可能有其他subforums或一組線程。在這兩種情況下,我只需要提取鏈接到他們(subforums /線程) – Sebi

相關問題