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

XSL/XSLT/XPATH XML Discussion :

selectionner du html en xml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut selectionner du html en xml
    salut ,
    mon but est en fait de parcourir un fichier html et copier juste ce qui se trouve entre les tag perso dans un autre fichier pour le transformer en xml.
    esxemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <html >
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
        <title>Exemple </title>
     
      </head>
      <body>
    blaaa blaaaa blaaaaa
    <tag_perso>
     <table summary="Tidy Options Quick Reference Header Section" border="0" cellpadding="3" cellspacing="0">
          <tr valign="bottom">
            <td class="h3" colspan="2" id="MarkupHeader">HTML, XHTML, XML Options</td>
            <td valign="top">
              <a href="#top">Top</a>
            </td>
            <td>
           toto
           </td>
          </tr>
    </table>
    </tag_perso>
    bla bla bla bla 
    </body>
    </html>
    savez vous comment peut on faire ceci???

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Salut
    Tu peux utiliser jdom qui est très simple et adapté pour tes besoins.


    --------------------------------------------
    Steve Hostettler
    ze_key@hotmail.com / www.zekey.net
    Steve Hostettler
    est ton ami(e) et le tag aussi.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    euh je vois pas trop comment faire là??

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par nayron_1
    euh je vois pas trop comment faire là??
    Et bien ton fichier html doit etre bien formé , balise ouvrante et fermante en gros du XHTML du coup ton fichier html est un fichier XML lisible par un parser XML , tu as deux solution DOM et SAX , DOM te charge l'arbre complet de ton fichier XML et sax fonctionne sur le principe de callback tu implemente des methode qui seront appeler lorsque le parser passeras sur les balises.

    Sinon si tu veux quelque chose de moins fin tu as les expressions reguliere tu recherche ta balise ouvrante et ta balise fermante et tu prend ce qu'il y a entre les deux et puis voila !!!
    UML avec VIOLET

  5. #5
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Essayes ce tutorial:
    http://www.cafeconleche.org/slides/nypc/jdom/

    --------------------------------------------
    Steve Hostettler
    ze_key@hotmail.com / www.zekey.net
    Steve Hostettler
    est ton ami(e) et le tag aussi.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    merci je vais essayer de le lire,et puis on verra ce que ceci va donner

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    bah en fait je vient d'essayer XSLT et j'arrive à enlever toutes les balises indesirables par contre le contenu de ces dernieres reste dans mon fichier XML du coup il n'est pas bien formé

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Avec XSLT tu peux creer un nouveau fichier , le format du fichier de sorti est representé dans ton xsl et les données dans le fichier XML en l'occurence ton fichier HTML , donc a priori tu peux faire de ton nouveau fichier un fichier XML bien formé non ?
    Je suis pas un expert XSL mais tu n'as qu'une seul regle (template) pour la balise (monTag) le reste tu n'y prete pas attention !!!
    UML avec VIOLET

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    bah en fait ça marche à moitiè comme j'ai dis ,voila un exemple
    fichier initial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <html>
      <body>blaaaaaaaaaaaa 
      <title>salut tout le monde</title>
     
      <tagPerso>
        <table>
          <tr>
            <th>entree ligne 1</th>
     
            <td>colonne 1.1</td>
     
            <td>colonne 2.1</td>
          </tr>
     
          <tr>
            <th>ligne 2</th>
     
            <td>colonne 2.1</td>
     
            <td>colonne 2.2</td>
          </tr>
        </table>
      </tagPerso>
     
      blaaaaaaa</body>
    </html>
    fichier après une transformation XSLT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    blaaaaaaaaaaaa 
      salut tout le monde<donnee>
    <ligne>
    <titre_ligne>entree ligne 1</titre_ligne>
    <colonne>colonne 1.1</colonne>
    <colonne>colonne 2.1</colonne>
    </ligne>
    <ligne>
    <titre_ligne>ligne 2</titre_ligne>
    <colonne>colonne 2.1</colonne>
    <colonne>colonne 2.2</colonne>
    </ligne>
    </donnee>
     
      blaaaaaaa
    comme vous voyez mon probleme c'est le bla bla à l'exterieur des balises xml.
    si vous avez une idée ...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Et ton fichier XSL ressemble a quoi ?
    UML avec VIOLET

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    mon fichier XSl est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" encoding="iso-8859-1" indent="yes"/>
    	<xsl:strip-space elements="*"/>
    	<xsl:preserve-space elements="donnee|ligne|colonne|titre_ligne|th"/>
    	<!--debut u traitment :on detecte la partie à traiter-->
    	<xsl:template match="tagPerso/table">
    		<!--on place une balise donées-->
    		<donnee>
     
    			<xsl:call-template name="tr"/>
    			<xsl:apply-templates/>
    		</donnee>
    	</xsl:template>
    	<!--on arrive à une ligne :on remplace les balises par ce qu'il faut-->
    	<xsl:template match="tr" name="tr">
    		<xsl:for-each select="tr">
    			<ligne>
    				<xsl:value-of select="tr"/>
    				<xsl:call-template name="th"/>
    				<xsl:call-template name="td"/>
    				<xsl:apply-templates/>
    			</ligne>
    		</xsl:for-each>
    	</xsl:template>
    	<!--on arrive à une colonne :on remplace les balises par ce qu'il faut-->
    	<xsl:template match="td" name="td">
    		<xsl:for-each select="td">
    			<colonne>
     
    				<xsl:value-of select="td"/>
     
    				<xsl:apply-templates/>
    			</colonne>
    		</xsl:for-each>
    	</xsl:template>
    	<!--on arrive au titre de la ligne :on remplace les balises par ce qu'il faut-->
    	<xsl:template match="th" name="th">
    		<xsl:for-each select="th">
    			<titre_ligne>
    				<xsl:value-of select="th"/>
    				<xsl:apply-templates/>
    			</titre_ligne>
    		</xsl:for-each>
    	</xsl:template>
    	<!--on remplace les caractères speciaux par ce qu'il faut-->
    	<!--
    	<xsl:template name="remplacer">
    		<xsl:param name="caractere"></xsl:param>
    		<xsl:variable name="match">&#xa0;/()"&lt;&gt;&amp;°:</xsl:variable>
    		<xsl:variable name="remplacer">__0</xsl:variable>
    		<xsl:value-of select="translate(normalize-space($caractere),$match,$remplacer)"/>
    	</xsl:template>
    	-->
    </xsl:stylesheet>
    qu'en pense tu???

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Malheureusement j'ai pas une grosse experience en XSL , je pense avoir une solution mais elle risque d'etre tres fastidieuse , j'ai l'impression que lorsque le moteur XSL tombe sur une balise et qu'il n'a pas de templates correspondant il se contente d'afficher sont contenue , donc si pour toutes les balise possible tu mes dans le XSL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       <xsl:template match="body">
     
       </xsl:template>
    (ici j'ai mis la balise Body)
    Mais bon je pense qu'il doit y avoir un parametrage qui permettrais d'eviter ce genre de truc !!!!
    UML avec VIOLET

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    SInon essaye ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	<xsl:template match="/">
     
    		<xsl:apply-templates select="tagPerso/table"/>
     
    	</xsl:template >
    Peut etre que ca marcheras !!!
    UML avec VIOLET

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    ca c'est une premiere idee mais le truc c'est comme tu l'as si bien dis :
    pour toutes les balise possible
    aussi un autre prolbeme ,c'est que on ne connait pas a priori l'architecture de la page donc ça ne marchera pas ,
    merci quand meme :o
    [/quote]

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par FreshVic
    SInon essaye ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	<xsl:template match="/">
     
    		<xsl:apply-templates select="tagPerso/table"/>
     
    	</xsl:template >
    Peut etre que ca marcheras !!!
    tu as essayé ca !!
    Le truc c'est qu'il faut le forcer a ne pas traiter les balise autres que tagPerso , en faisant ca , ca le force peut etre à passer de la balise <HTML> à la balise <tagPerso>
    Mais bon ce n'est qu'une supposition !!
    UML avec VIOLET

  16. #16
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Sinon, je pense que sur le forum XML, il y a quelques intervenants qui sont capables de te pondre ça en qques minutes ...

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    malheureusemnt ceci ne marche pas car c'est le contraire qui se produit

Discussions similaires

  1. [DTD] Tags Html dans XML ---> Etendre la dtd du Xhtml
    Par tipaquo dans le forum Valider
    Réponses: 14
    Dernier message: 19/07/2010, 09h09
  2. Transformation HTML vers XML
    Par pocahontaos dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 23/01/2006, 23h14
  3. [3.0] [Pluging] Editeurs HTML,JSP,XML
    Par Sniper37 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 25/11/2005, 14h27
  4. [XSLT] [XML->HTML] transformation XML -> HTML via XSL
    Par Great Sayaman dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/12/2004, 22h12
  5. transformer du html en xml
    Par biboo dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 24/08/2004, 15h47

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