2017-02-15 50 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>分段。