0

特定のWebページのレコードのリストを作成する必要があります。ページソースをテキストファイルで取得しました。このノードを要素ごとにトラバースする必要があります。

HtmlNodeCollection resultContainer = doc.DocumentNode.SelectNodes("//div[@class='result-list divider-y-5']");

各要素について、タイプ(div、spanなど)を確認する必要があります。これは「id」であり、レコードのリストを作成できるようにするための「class」属性です。すべてのまたはのコレクションは必要ありません。それらをループしているときにどのタイプの要素に直面するかわからないので、それは役に立ちません。私はそれらすべてをチェックする必要があります。必要なデータはすべて、上記のノードコレクションの子であるためです。助言がありますか?

4

2 に答える 2

1
foreach(HtmlNode node in resultContainer)
{
    //check node type
    switch(node.Name)
    {
        case "div":
        {
            break;
        }   
        case "p":
        {
        }
        ///....etc
    }

    //get id
    String id = node.Attributes["id"].Value;

    //get class
    String class = node.Attributes["class"].Value;

}
于 2012-11-09T10:18:10.867 に答える
0

HtmlAgilityPack で html ドキュメントを xml に変換する方が簡単だと思います。

doc.Load(htmlStream, true);
doc.OptionOutputAsXml = true;
doc.OptionFixNestedTags = true;
doc.OptionAutoCloseOnEnd = true;
doc.Save(/* your Xml stream or filename */);

次に、通常の .NET xml API (XmlDocument または XDocument など) を使用してコンテンツを処理します。

于 2012-11-09T10:20:40.493 に答える