HTMLAgilityPackのChildNodesインデックス作品、という名前のノードがありません
-
19-09-2019 - |
質問
私はHTMLAgilityPackを持つXML APIレスポンスを解析しています。私は、API呼び出しから結果項目を選択することができています。 そして、Iループのアイテムを通って、テーブルにのChildNodesを書きたいです。私が選択した場合 以下のようなものを言ってのChildNodesます:
sItemId = dnItem.ChildNodes(0).innertext
私は正しいのitemId結果を取得します。しかし、私はしようとしたときます:
sItemId = dnItem.ChildNodes("itemId").innertext
私が手に「参照されたオブジェクトは、 『何も』の値を持っている。」
私が試みた "アイテムID [1]"、 "/のitemId [1]" との文字列のveriety。私はSELECTSINGLENODEとChildNodes.Item( "のitemId")。InnerTextプロパティを試してみました。インデックスを使用して働いています。
一つだけインデックスを使用しての問題は、時々、子要素は、結果では省略されており、それがインデックスをオフに投げることです。
誰も私が間違っているのか知っている?
解決
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(@webHTMLeditor.TextXhtml);
HtmlNodeCollection tableRows = htmlDoc.DocumentNode.SelectNodes("//tr");
for (int i = 0; i < tableRows.Count; i++)
{
HtmlNode tr = tableRows[i];
HtmlNode[] td = new HtmlNode[2];
string xpath = tr.XPath + "//td";
HtmlNodeCollection cellRows = tr.SelectNodes(@xpath);
//td[0] = tr.ChildNodes[1];
//td[1] = tr.ChildNodes[3];
try
{
td[0] = cellRows[0];
td[1] = cellRows[1];
}
catch (Exception)
{ }
//etc
}
コードは、行当たりのセルにより、行によってテーブル、行からデータを抽出するために使用されます。 私は既存のXPathを使用し、私はそれが私のニーズた内容に応じて、変更されました。 幸運!
所属していません StackOverflow