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

XML/XSL et SOAP Discussion :

[débutant] XML ou expressions régulières ?


Sujet :

XML/XSL et SOAP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Points : 42
    Points
    42
    Par défaut [débutant] XML ou expressions régulières ?
    Bonjour,

    Je ne connais pas le XML, je ne fais que me renseigner pour le moment.

    J'ai besoin d'extraire une chaine de caractère inclus entre des balises HTML.
    J'ai lu que je pouvais faire ça avec le XML (ou XPath).
    On peut réaliser la même chose avec les expressions régulières, en PHP par exemple.

    Cela est-il plus rapide avec XML ? ou peut-être plus simple ? ou tout simplement plus puissant ?
    Ou n'est-ce qu'une question de point de vue et de compétences ??

    Merci de vos réponses
    La souris se déplace, elle est libre à ta place...
    (No one is Innocent)

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Pour récupérer des données dans un fichier HTML avec XPath, il faut que certaines contraintes soient respectées : fichier "bien formé" au sens XML avec balise ouvrantes->balises fermantes, attributs entre guillemets, etc. Ces contraintes sont rarement respectées dans les fichiers HTML couramment rencontrés. Elles le sont par contre dans les fichiers XHTML qui sont du HTML avec le formalisme de XML. Tu as donc deux méthodes pour extraire des informations d'un fichier HTML :
    1°) Convertir le HTML en XHTML (des outils comme Tidy le font très bien) puis utiliser XPath pour extraire les infos.
    2°) Utiliser les expressions régulières
    Selon la complexité du HTML et les informations que tu dois extraire, les deux méthodes ont leurs avantages et leurs inconvénients.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Points : 42
    Points
    42
    Par défaut
    Dans mon cas c'est le fichier des favoris, donc généré par un explorateur internet (I.E., Mozilla, Firefox, ...)
    Je pense qu'ils respectent les contraintes dont tu parles...

    Il doit cependant être plus intéressant de travailler avec XPath qu'avec les expressions régulières (en termes de programmation je veux dire).
    La souris se déplace, elle est libre à ta place...
    (No one is Innocent)

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Surtout beaucoup plus simple ! imagine que tu as un fichier avec cette structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <favoris>
      <monSitePerso>
        <url>...</url>
      </monSitePerso>
      <favori>
        <url>...</url>
      </favori>
      <favori>
        <url>...</url>
      </favori>
      <favori>
        <url>...</url>
      </favori>
    </favoris>
    Tu veux récupérer le contenu des balises <url>, mais uniquement celles contenues dans les balises <favori>. En Xpath, enfantin. Avec les expressions régulières, beaucoup plus compliqué car il faut préciser le contexte dans le pattern.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Points : 42
    Points
    42
    Par défaut
    Je veux bien imaginer tous les fichiers que tu veux, avec toutes les structures que tu veux... mais ça ne se passe pas aussi idéalement

    Le fichier généré automatique comporte des balises <DT>, <p>, <DL> et certaines autres. Il y a en tout 5 balises différentes je crois.

    Je précise que ce n'est pas moi qui génère ce fichier, mais l'explorateur internet.

    Je ne vois pas trop comment tu veux que je me retrouve avec un fichier comportant les structures que tu cites...
    La souris se déplace, elle est libre à ta place...
    (No one is Innocent)

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Ce n'était qu'un exemple...
    C'était pour illustrer le fait que, dans le cas d'un fichier XML, il est infiniment plus pratique de passer par XPath que par des expressions régulières, sauf dans le cas d'extraction très simples.
    Attention, dans ton cas, le fait qu'il soit généré par IE, Mozilla, etc. ne signifie en rien qu'il soit bien formé et parcourable par requêtes XPath.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Points : 42
    Points
    42
    Par défaut
    Ok d'acc...

    D'autant que je viens de m'apercevoir que certaines balises ne sont pas fermées.

    Dans ce cas là, est-il possible de transformer ce fichier HTML, en fichier XML pour ensuite pouvoir le parcourir avec des requêtes XPath ?

    [Remarque de dernière minute]
    j'ai cette ligne là au début du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE NETSCAPE-Bookmark-file-1>
    Cela ne signifie pas que c'est un fichier XML ?
    [/Remarque de dernière minute]
    La souris se déplace, elle est libre à ta place...
    (No one is Innocent)

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par R3iTt0R
    Dans ce cas là, est-il possible de transformer ce fichier HTML, en fichier XML pour ensuite pouvoir le parcourir avec des requêtes XPath ?
    Oui, en utilisant un excellent outil nommé Tidy : http://www.w3.org/People/Raggett/tidy/
    Citation Envoyé par R3iTt0R
    j'ai cette ligne là au début du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE NETSCAPE-Bookmark-file-1>
    Cela ne signifie pas que c'est un fichier XML ?
    Non, pas nécessairement. Les DTD sont liées à SGML. XML est dérivé de SGML, ainsi que HTML mais du HTML n'est pas du XML pour autant !
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  9. #9
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 62
    Points : 42
    Points
    42
    Par défaut
    Merci, je crois avoir tout compris, j'ai plus qu'à appliquer tout ça.
    La souris se déplace, elle est libre à ta place...
    (No one is Innocent)

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

Discussions similaires

  1. [RegEx] Expression régulière pour balises XML
    Par vodasan dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2008, 08h31
  2. Débutant - Expressions régulières
    Par tirixil dans le forum Langage
    Réponses: 2
    Dernier message: 21/11/2007, 09h53
  3. débutant expression régulière
    Par Tex-Twil dans le forum Langage
    Réponses: 6
    Dernier message: 17/08/2007, 12h12
  4. Réponses: 4
    Dernier message: 13/07/2007, 15h32
  5. [Débutant][Regex] Expression régulière adaptée
    Par hm1ch dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/06/2007, 21h50

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