如何从带有xpath的斜体元素后面的链接中提取url?

时间:2017-02-15 20:35:17

标签: html 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

2 个答案:

答案 0 :(得分:0)

您可以使用以下XPath个表达式之一:

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

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

答案 1 :(得分:0)

如果<i>元素导致问题,或者它们格式错误,那么在创建XPath对象之前,如何以文本方式删除所有<i></i>字符串呢?

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

然后从该“干净”字符串创建您的XPath对象。您可能无需知道应用中<i>段的位置。