IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[agility pack] comment récupérer les nodes <span> d'une couleur donnée ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Par défaut [agility pack] comment récupérer les nodes <span> d'une couleur donnée ?
    Bonjour,

    J'essaie de trier les nodes <span> qui vont par exemple avoir la couleur bleue.

    J'ai remarqué que le style était dans l'Attributes[1] d'un node <span>.

    Voici mon code, et j'obtiens, nada...

    Quelqu'un voit-il comment faire la manip ?

    Merci par avance pour votre aide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string bluecolor = @"color:#0000ff";
    var rubrique = doc.DocumentNode.Descendants("span"); // je récupère tous les nodes <span>
    foreach (var rub in rubrique) {
       if (rub.Attributes.Count > 1)
          if (rub.Attributes[1].Value.Contains(bluecolor))
             richTextBoxBlue.Text += rub.InnerText + "\n";     // je rentre le texte en bleu dans un richBox
       }
    Le code source d'une page html indique, dans un éditeur de texte : color: rgb(0, 0, 255) pour la couleur bleue, et au débogage, ça me parle de color:#0000ff.

    Je suppose que c'est à cause de cela, et qu'il doit falloir dire au programme quelle version prendre pour le filtrage ....

    Mais je sèche depuis un moment là-dessus.

    En tout cas, merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Que contient rub.Attributes[1].Value ?

    Avec du pas à pas cela ne suffit pas à trouver ?

    Et comme ceci tu ne récupère pas le bon attribut ?
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    rub.Attributes["style"].Value

    Une autre façon de récupérer tes balises style
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    doc.DocumentElement.SelectNodes("//span[@style]")

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Après avoir effectuer un test, ceci fonctionne pour moi
    Testé ici : https://dotnetfiddle.net/z2y3yl

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HtmlAgilityPack.HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectNodes(@"//span[contains(@style, ""color:#0000ff"")]");
    if (nodes != null)
    {
    	foreach(HtmlAgilityPack.HtmlNode node in nodes)
    	{
    		richTextBoxBlue.Text += node.InnerText + "\n";
    	}
    }

    Si tu n'obtient rien essaie après avec @"color:#0000ff"

  4. #4
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Par défaut
    ça marche nickel.

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer les numéros de ligne/colonne d'une plage
    Par Val2000 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/07/2013, 16h56
  2. Réponses: 1
    Dernier message: 14/08/2011, 04h24
  3. Réponses: 2
    Dernier message: 17/09/2006, 23h33
  4. Réponses: 4
    Dernier message: 15/05/2006, 15h54
  5. Comment récupérer les coordonnées sur le bureau d'une form ?
    Par fma2112 dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 22/02/2006, 23h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo