Bị nhức đầu thực sự ở giai đoạn này vào Thứ Sáu! Tôi đang cố gắng để thêm một HtmlNode khác bằng cách sử dụng InsertAfter(). Tôi có thể thấy nút refChild với id của breadcrumbs khi tôi rpint nó vào giao diện điều khiển nhưng vẫn gặp lỗi sau:Tôi nên sử dụng HTMLAgilityPack AppendNode như thế nào?
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
Mã của tôi là:
HtmlWrapper.InsertAfter(ContentNode, HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']"));
Và như đã đề cập tôi đã in ra cả HtmlWrapper và HtmlWrapper.SelectSingleNode ("// div [@ id = 'breadcrumb']") vào bảng điều khiển và có thể thấy nút trên màn hình. Bất kỳ ý tưởng về nơi tôi sẽ sai ở đây?
Cảm ơn, Denis
Điều đó không có hiệu quả lúc đầu nhưng tôi đã mang bộ chọn lên một vài cấp và cuối cùng cũng chỉ vào con của nút HtmlWrapper. Làm thế nào bạn biết nó cần một đứa trẻ cụ thể và không phải là một người bị đơn? –
@Denis: tìm thấy nguồn thông qua một google cho HtmlNodeCollection InsertAfter, nhận thấy rằng các thành viên được lập chỉ mục vào được gọi là '_childNodes', đoán :) – AakashM
Bí quyết ở đây là làm như sau: nodeToInstertBefore.ParentNode.InsertBefore (newNode, nodeToInsertBefore) Không rõ ràng, nhưng nó hoạt động :) – Philippe