如何从 XPATH 获取 URL?

How to get URL from the XPATH?

我曾尝试检查此站点上的其他答案,但 none 对我有用。我有以下 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')]。但是所有这些行只给了我 link - some textstring

的名称

为什么不直接使用 XDocument class?

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;
        }
    }
}

代码未经测试,请谨慎使用。

属性没有 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;