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

VB.NET Discussion :

Détection d'un Tag dans un fichier XHTML


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut Détection d'un Tag dans un fichier XHTML
    Bonjour

    Dans un fichier assez complexe d'une page Web j'ai une ligne du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="global-menu-name"><img src="images/fleche_coude.png" /><a href="hhhhh">Prénom</a> <a href="kkkkkkkkk">Nom</a></div>
    Pour détecter et décoder cette ligne j'ai essayer plusieurs methodes du HTMLAgilityPack comme:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim DivId As HtmlNode = HtmlDoc.DocumentNode.SelectSingleNode("//div[@class='global-menu-name']")
    Mais j'obtiens systématiquement un Nothing.
    La raison est que ce DIV n'est pas un fils direct de Body mais que la complexité du Xhtml est telle que je n'arrive pas à déterminer son chemin.

    Donc comment faire pour détecter un noeud dont on ne connais pas le chemin ?

    Merci

    Bernard

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Tu peux parcourir les enfants du noeud principal (DIV) et chercher les noeuds A :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim prenom = divId.ChildNodes.SingleOrDefault(Function(c) c.Name = "a" AndAlso c.Attributes("href") IsNot Nothing AndAlso c.Attributes("href").Value = "hhhhh").InnerText
    Dim nom = divId.ChildNodes.SingleOrDefault(Function(c) c.Name = "a" AndAlso c.Attributes("href") IsNot Nothing AndAlso c.Attributes("href").Value = "kkkkkkkkk").InnerText
    Ou un peu plus simplement avec un foreach (ca revient au même) :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim prenom = String.Empty
    Dim nom = String.Empty
     
    For Each child As var In divId.ChildNodes
    	If child.Name = "a" AndAlso child.Attributes("href") IsNot Nothing AndAlso child.Attributes("href").Value = "hhhhh" Then
    		prenom = child.InnerText
    	ElseIf child.Name = "a" AndAlso child.Attributes("href") IsNot Nothing AndAlso child.Attributes("href").Value = "kkkkkkkkk" Then
    		nom = child.InnerText
    	End If
    Next
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut
    Bonjour

    Le problème est que je n'arrive pas à détecter la ligne et que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim DivId As HtmlNode = HtmlDoc.DocumentNode.SelectSingleNode("//div[@class='global-menu-name']")
    me renvoie Nothing !

    Bernard

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut
    Une précision

    les lignes qui précédent sont:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="gw-menu">
    <div class="row"><a name="topMenu"></a>
    <nav id="header-onglets" class="top-bar" data-topbar="" role="navigation">
    <ul class="title-area hide-for-large-up"><!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
    <li class="name"><a href="#"></a>
    La ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim DivId As HtmlNode = HtmlDoc.DocumentNode.SelectSingleNode("//div[@id='gw-menu']")
    Détecte bien le noeud Div id="gw-menu

    mais la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim NoeudGw_Menu As HtmlNode = HtmlDoc.DocumentNode.SelectSingleNode("//div[@class='global-menu-name']")
    renvoi Nothing ! Pourquoi ?

    Bernard

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Poste tout le HTML on ne peut pas t'aider comme ca.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut
    Bonjour

    Le voici en pièce jointe, tout au moins la première partie car le fichier ést trop gros.
    La ligne recherche est la 1532.

    Merci pour votre aide

    Bernard
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/05/2014, 10h53
  2. Réponses: 0
    Dernier message: 11/05/2010, 10h22
  3. Réponses: 9
    Dernier message: 24/04/2010, 10h03
  4. private tag dans un fichier image DICOM
    Par morty dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 19/08/2009, 14h09
  5. Exporter des données xml dans un fichier XHTML
    Par StAfX dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 02/02/2009, 15h21

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