14

私は小さな Download-Roboter を書いています。これは、下位層のリンクを自分で検索します。

私が見つける必要があるのは、html ページ内のすべてのリンクです (.jpg ファイルへのリンクと、.pgn、.pdf、.html、.... - ファイルへのリンク)。

html-agilitypack を使用して、すべての a-href リンクを見つけています。

サンプルコード:

foreach (HtmlNode link in htmlDocument.DocumentNode.SelectNodes("//a[@href]"))
{
    HtmlAttribute attribute = link.Attributes["href"];
    links.Add(attribute.Value);
}

しかし、データURLも見つけたいです。

データ URL を見つけるために使用する必要がある XPath 構文は何ですか。htmlcode の data-url の例:

    <div class="cbreplay" data-url="2012\edmonton\partien.pgn"></div>

この例の「2012\edmonton\partien.pgn」が必要です。XPath構文でこれを実現するにはどうすればよいですか?

よろしくお願いします。悪い間違いをした場合は教えてください。これは私の最初の質問です。

4

1 に答える 1

23

以下はあなたが望むことをするはずです:

foreach (HtmlNode divNode in htmlDocument.DocumentNode.SelectNodes("//div[@data-url]"))
{
    HtmlAttribute attribute = divNode.Attributes["data-url"];
    links.Add(attribute.Value);
}

実際には、ステートメント//div[@data-url]は data-url 属性を持つすべてのノードを選択する必要があります。次に、この属性を引き出します。

この属性を持つ div 以外のノードがある場合//*[@data-url]は、トリックを実行する必要があります。

于 2012-07-10T08:21:48.427 に答える