금요일이 단계에서 진짜 두통을 겪었습니다! InsertAfter ()를 사용하여 다른 HtmlNode 추가하려면 노력하고있어. breadcrumbs의 ID를 가진 refChild 노드를 볼 수 있는데 콘솔에 rpint하지만 다음 오류가 계속 발생합니다.
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
내 코드는 다음과 같습니다.
HtmlWrapper.InsertAfter(ContentNode, HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']"));
그리고 언급 한 바와 같이 HtmlWrapper와 HtmlWrapper.SelectSingleNode ( "// div [@ id = 'breadcrumb']")를 콘솔에 출력하고 화면상의 노드를 볼 수 있습니다. 내가 여기서 잘못 가고있는 어떤 생각?
고마워, 데니스
소스에 대한 매우 복잡한 검사에서 InsertAfter
는 refChild
를 InsertAfter
를 호출 한 노드의 직접적인 자식이라고 생각합니다. 당신이 div
노드에 대해 //
자손 축 전체를 검색하고 있기 때문에 refChild
로 전달한 실제 노드가 HtmlWrapper
의 직접적인 자식 이 HtmlWrapper
있습니다.
HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']")
를 변수로 가져 와서 ParentNode
InsertAfter
를 호출하십시오.