我在使用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;
}
有人可以告诉我问题出在哪里?
由于元素的InnerHTML
或InnerText
都是一个纯文本。我正试图在foreach
...
答案 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)
{
}
}
}
}
}
}