如何从XPATH获取URL

本文关键字:获取 URL XPATH | 更新日期: 2023-09-27 18:22:10

我试着在这个网站上检查其他答案,但没有一个对我有效。我有以下HTML代码:

<h3 class="x-large lheight20 margintop5">
  <a href="http://someUrl.com" class="marginright5 link linkWithHash detailsLink"><strong>some textstring</strong></a>
</h3>

我正试图用以下代码从该文档中获取#

string adUrl = Doc.DocumentNode.SelectSingleNode("//*[@id='"offers_table'"]/tbody/tr["+i+ "]/td/table/tbody/tr[1]/td[2]/div/h3/a/@href").InnerText;

我也试着在没有@href的情况下做到这一点。也尝试使用a[contains(@href, 'searchString')]。但所有这些行只给了我链接的名称-一些文本字符串

如何从XPATH获取URL

属性没有InnerText。您必须使用Attributes集合。

string adUrl = Doc.DocumentNode.SelectSingleNode("//*[@id='"offers_table'"]/tbody/tr["+i+ "]/td/table/tbody/tr[1]/td[2]/div/h3/a")
                               .Attributes["href"].Value;

为什么不直接使用XDocument类?

private string GetUrl(string filename)
{
    var doc = XDocument.Load(filename)
    foreach (var h3Element in doc.Elements("h3").Where(e => e.Attribute("class"))
    {
        var classAtt = h3Element.Attribute("class");
        if (classAtt == "x-large lheight20 margintop5")
        {
            h3Element.Element("a").Attribute("href").value;
        }
    }
}

该代码未经过测试,因此请谨慎使用。