2017-02-15 39 views
2

我想從xpath中抽取很多頁面的鏈接,我不確定我在這裏做錯了什麼。頁面的格式很差,用斜體表示,我認爲這是拋棄它。如何從xpath中的斜體元素之後的鏈接中提取網址?

這是對HTML的格式呈現方式的一例:

<p> 
    <i>This content is constant</i> 
    <a href="example.com/exampe123"> 
     <i>This text changes</i> 
    </a> 
    <i> </i> 
</p> 

在這個例子中,單詞「text」並沒有改變,但是的話,其餘做。

我嘗試使用以下XPath,但它沒有工作:

//p/a[contains(text(), 'text')]/@href 

回答

0

您可以使用以下其中一個XPath表達式:如果<i>元素造成的問題

//p/a[i[contains(text(), 'text')]]/@href 

//p/a[contains(., 'text')]/@href 
0

,或者如果他們是畸形的,那麼在創建XPath對象之前,只需以文本方式刪除所有的<i></i>字符串呢?

var cleanString = dirtyString.Replace("<i>","").Replace("</i>",""); 

然後從該「乾淨」字符串中創建您的XPath對象。有機會,你不需要知道你的應用中的<i>分段。