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 :

extraire des balises au milieu de texte


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut extraire des balises au milieu de texte
    Bonjour,

    j'ai un fichier xml avec des balises nommée Organisation que je souhaiterai
    extraire. mais tout autour il y a du texte et je ne veux extraire que les balise et leur contenu.

    j'ai un debut de code mais il me renvoi le texte avec :
    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
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:tei="http://www.tei-c.org/ns/1.0" version="1.0">
     
        <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
     
        <xsl:template match="Organization">
     
            <xsl:copy-of select="*" />
     
        </xsl:template>
     
      <!-- <xsl:template match="">
            <xsl:comment>
                <xsl:apply-templates select="node()"/>
            </xsl:comment>
        </xsl:template> -->
     
     
     
     
    </xsl:stylesheet>
    merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Deux possibilités :

    - Modifier le template de texte par défaut, pour qu'il ne fasse rien : ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:template match="text()">
    </xsl:template>
    - Ne pas appliquer de template sur le texte, en sélectionnant uniquement les éléments voulus : ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="/">
      <xsl:apply-templates select="//Organization"/>
    </xsl:template>
    Note : s'il y a plusieurs balises <Organization>, le résultat produit sera un fragment XML, constitué de ces balises <Organization> dans l'ordre, l'une après l'autre, sans parent.
    Un document XML bien formé n'a qu'un seul élément racine sans parent. Donc le fragment ainsi généré n'est pas un document XML, juste un fragment (et la plupart des parseurs de XML le rejetteront.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    merci j'ai fait ça comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="/">
    <NE>
      <xsl:copy-of select="//Organization"/>
    </NE>
    </xsl:template>
    ça me convient. par contre j'ai un gros fichier et j'aurai du mal a tout verifier mais tu me confirme que cette methode recupere aussi bien les :
    • <Organization>France Telecom</Organization>
    • <Organization><Person>Jacques Chirac</Person></Organization>
    • etc.


    bref qu'il pourra recuperer les balises ayant des noeuds et quelque soit le nombre ?


    merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par knebhi Voir le message
    ça me convient. par contre j'ai un gros fichier et j'aurai du mal a tout verifier mais tu me confirme que cette methode recupere aussi bien les :
    • <Organization>France Telecom</Organization>
    • <Organization><Person>Jacques Chirac</Person></Organization>
    • etc.


    bref qu'il pourra recuperer les balises ayant des noeuds et quelque soit le nombre ?
    Oui.
    • //Organization sélectionne sans s'intéresser au contenu
    • <xsl:copy-of> copie les nœuds sélectionnés tels quels, avec leur contenu, dans l'ordre du document.



    Par contre, si ton document est immense, tu devrais peut-être éviter les //, et plutôt sélectionner /chemin/complet/vers/Organization
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Extraire des données d'un fichier texte
    Par fredfaz dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2009, 06h24
  2. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  3. Réponses: 21
    Dernier message: 28/01/2008, 20h56
  4. Des balises pour limiter mon texte
    Par malhivertman1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/01/2007, 12h13
  5. Extraire des donnés d'un fichier texte
    Par sadsad dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2006, 15h09

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