J'écris un petit Download-Roboter, qui cherche des liens dans les couches inférieures pour lui-même.
Ce que je dois trouver sont tous les liens dans une page HTML (les liens vers des fichiers .jpg ainsi que les liens vers .pgn, .pdf, .html, .... - fichiers)
J'utilise html-agilitypack pour trouver tous les liens a-href.
Exemple de code:
foreach (HtmlNode link in htmlDocument.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute attribute = link.Attributes["href"];
links.Add(attribute.Value);
}
Mais je veux aussi trouver les URL de données.
Quelle syntaxe XPath dois-je utiliser pour trouver des URL de données? Un exemple d'URL de données dans un code HTML:
<div class="cbreplay" data-url="2012\edmonton\partien.pgn"></div>
J'ai besoin de "2012 \ edmonton \ partien.pgn" dans cet exemple. Comment puis-je réaliser cela avec la syntaxe XPath?
Meilleures salutations, si j'ai fait de mauvaises erreurs, dites-le moi. Ceci est ma première question.
Ce qui suit devrait faire ce que vous voulez:
foreach (HtmlNode divNode in htmlDocument.DocumentNode.SelectNodes("//div[@data-url]"))
{
HtmlAttribute attribute = divNode.Attributes["data-url"];
links.Add(attribute.Value);
}
En effet, l'instruction //div[@data-url]
doit sélectionner tous les nœuds dotés d'un attribut data-url. Nous retirons ensuite cet attribut.
S'il existe des nœuds autres que divs avec cet attribut, alors //*[@data-url]
devrait suffire.