选择<a href=""> HTML tag through XPATH</a>的文字部分

时间:2012-02-08 18:36:20

标签: c# html xpath href

请考虑以下事项:

<span>
    <li>
        <a href="javascript:__doPostBack('Send', 'ShowPackageDetails');"> Recall </a>
    </li>
</span>

我想通过文本值'Recall'抓取XPath到这个元素。

我知道我也可以使用以下方式选择它:

//a[contains(@href, 'ShowPackageDetails')]

但页面上的其他元素在其href属性中也包含相同的字符串。在这种情况下,我更愿意根据实际文本而不是其属性进行选择,因为我知道它是唯一的,我不需要求助于索引使用。

我试过

//a[contains(@value, 'Recall')]

text()='Recall'的其他各种组合,但我根本没有得到任何结果。

3 个答案:

答案 0 :(得分:1)

试试这个:

HTML

<span>
    <li>
        <a href="javascript:__doPostBack('Send', 'ShowPackageDetails');">Recall</a>
    </li>
</span>

的XPath

//a[text()="Recall"]

它可能与“召回”而不是“召回”的文本有关。我删除了标记中的空格。

答案 1 :(得分:1)

如果您尝试解析已生成的Html页面,则应使用Html Agility Pack。这是一个C#解决方案(我可以在你的问题标签中看到。

 HtmlDocument doc = new HtmlDocument();
 doc.Load("yourFile.html");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
 {
    //Check the text and do what you want...
 }

答案 2 :(得分:1)

@用于选择属性。请改用以下内容:

//a[contains(., 'Recall')]