HTMLAgilityPackのChildNodesインデックス作品、という名前のノードがありません

StackOverflow https://stackoverflow.com/questions/2428023

質問

私は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を使用し、私はそれが私のニーズた内容に応じて、変更されました。 幸運!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top