由于某种原因,SelectSingleNode无法正常工作

时间:2017-02-12 18:14:55

标签: c# html parsing html-agility-pack

我在使用Html Agility Pack时遇到了一些麻烦。我正在写一个解析器,这是我的问题:

每当我尝试使用SelectSingleNode获取内部文字时,我都会获得null引用:

foreach (var singleBox in boxes.SelectNodes(".//div/div"))
{
    var titleNode = singleBox.SelectSingleNode(".//h2/a").InnerText; 
}

但是当我不使用它时,将.//h2/a放入foreach就可以了

foreach (var singleBox in boxes.SelectNodes(".//div/div/h2/a"))
{
    var titleNode = singleBox.InnerText; 
}

有人可以告诉我问题出在哪里?

由于元素的InnerHTMLInnerText都是一个纯文本。我正试图在foreach ...

中获得单个节点的单个节点

1 个答案:

答案 0 :(得分:0)

foreach (var box in doc.DocumentNode.SelectNodes("//*[@id=\"content\"]/div/div/div/div"))
{
    var singleBoxTitle = box.SelectSingleNode(".//*[contains(@class,'feed_title')]/h2/a");

    var singleBoxArticles = box.SelectNodes(".//*[contains(@class,'newsbox_inner')]");
    if(singleBoxArticles != null)
    {
        foreach (var singleArticle in singleBoxArticles)
        {
            var singlefoundArticle = singleArticle.SelectSingleNode(".//div");
            if (singlefoundArticle != null)
            {
                foreach (var partOfSomething in singlefoundArticle.SelectNodes(".//div/a"))
                {
                    if (singlefoundArticle != null)
                    {
                    }
                }
            }
        }
    }
}