【发布时间】:2013-12-25 19:55:15
【问题描述】:
我正在尝试使用 HTMLAgilityPack 来解析 html 页面并获取 atom:links 其中包含在 item tags 中。这是 html 的示例:
<item><atom:link href="http://www.nytimes.com/2013/12/09/world/asia/justice-for-abused-
afghan-women-still-elusive-un-report-says.html?partner=rss&emc=rss"
rel="standout" />
我试图通过执行以下操作仅获取item 标签中的atom:link:
List<string> urlList = new List<string>();
HtmlAgilityPack.HtmlWeb nytRssPage = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument nytRssDoc = new HtmlAgilityPack.HtmlDocument();
nytRssDoc = nytRssPage.Load(rssUrl);
var items = nytRssDoc.DocumentNode.Descendants("item").ToList();// list of <item> tags
foreach (var item in items)
{
var atomLink = item.SelectSingleNode("atom:link");
string articleUrl = atomLink.InnerText;
urlList.Add(articleUrl);
}
urlList 是空的,我想我做错了什么。
如果有人能指出我的解决方案,那就太好了,在此先感谢。
【问题讨论】:
-
Atom 是一个有效的 XML 结构。为什么要使用 HtmlAgilityPack 来解析它?至于获取 atomLlink 标签,您可能需要使用
/link(没有命名空间atom)或使用local-name函数 stackoverflow.com/a/8181480/736079 -
@jessehouwing,感谢您的回答。如果是这样,我只想解析
- 标签中包含的链接。我仍然认为我使用的语法是错误的
-
@jessehouwing,我现在尝试了 Descendants("link") ,但没有成功,然后我尝试了 SelectNodes("//link") - 但效果不佳.如果您有任何建议,我将不胜感激,提前感谢!
标签: c# parsing tags html-agility-pack