どのように私はHTMLAgilityPack AppendNodeを使用する必要がありますか?
-
22-09-2019 - |
質問
金曜日のこの段階では本当の頭痛の種を手に入れました!私は別の使用InsertAfterにHtmlNodeを追加しようとしています()。私は、コンソールにそれをrpintときパン粉のIDで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
私のコードは次のとおりです。
HtmlWrapper.InsertAfter(ContentNode, HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']"));
私はコンソールに(「// divの[ID @ = 『ブレッドクラム』]」)の両方HtmlWrapperとHtmlWrapper.SelectSingleNodeをプリントアウトしており、画面上のノードを見ることができる述べたように。私はここで間違って行くよどこ上の任意のアイデア?
おかげで、 デニス
解決
InsertAfter
がrefChild
が上InsertAfter
ボークノードあなたのの直接のの子になりたいと思っているように、ソースの非常にぞんざいな検査から、それが見えます。あなたは//
ノードの(div
付き)全体descendant軸を検索しているので、それはあなたがrefChild
として渡し、実際のノードがのHtmlWrapper
のの直接の子ではないことが可能です。
変数にHtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']")
を引っ張ってみて、そのInsertAfter
にParentNode
を呼び出します。
所属していません StackOverflow