Den*_*tor 7 c# screen-scraping html-agility-pack
星期五这个阶段真的很头疼!我正在尝试使用InsertAfter()将HtmlNode添加到另一个.当我将它发送到控制台时,我可以看到id为breadcrumbs的refChild节点,但不断收到以下错误:
System.ArgumentOutOfRangeException: Node "<div id="breadcrumb"></div>" was not f
ound in the collection
Parameter name: node
at HtmlAgilityPack.HtmlNodeCollection.get_Item(HtmlNode node)
at HtmlAgilityPack.HtmlNode.InsertAfter(HtmlNode newChild, HtmlNode refChild)
at MyHome.Tasks.Tasks.DownloadandStoreContent(KeyValueP
air`2 urlPair, String filePath, HtmlNode HtmlWrapper) in C:\Users\denis\Document
s\Visual Studio 2008\Websites\MyHomeV2\MyHome.Tasks\Tasks.cs:line 81
at MyHome.Tasks.Tasks.GenerateContent(String scrape
sSwitch, String filePath) in C:\Users\denis\Documents\Visual Studio 2008\Website
s\MyHomeV2\MyHome.Tasks\Tasks.cs:line 27
at MyHome.Tasks.Program.Main(String[] args) in C:\Users\denis\Documents\Visua
l Studio 2008\Websites\MyHomeV2\MyHome.Tasks\Program.cs:line 87
Run Code Online (Sandbox Code Playgroud)
我的代码是:
HtmlWrapper.InsertAfter(ContentNode, HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']"));
Run Code Online (Sandbox Code Playgroud)
如上所述,我已经打印出HtmlWrapper和HtmlWrapper.SelectSingleNode("// div [@ id ='breadcrumb']")到控制台,可以看到屏幕上的节点.关于我在哪里出错的任何想法?
谢谢,丹尼斯
从对源的非常粗略的检查来看,它看起来像是InsertAfter要refChild成为您调用的节点的直接子节点InsertAfter.既然你是搜索整个后代轴(与//你)div节点,它可能是你传递的实际节点refChild不是直接孩子的HtmlWrapper.
尝试拉HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']")入变量,然后调用InsertAfter它ParentNode.
| 归档时间: |
|
| 查看次数: |
3904 次 |
| 最近记录: |