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 :

filtrer un document xml


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut filtrer un document xml
    bonjour ,
    j'ai un programme en XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0"  ?>
    <?xml-stylesheet href="monfichier.xsl" type="text/xsl" ?>
    <a>
    <ab x="x"><b>Test</b><a>z</a></ab>
    <z x="x"><a>z</a></z>
    </a>
    il faut que j'ai ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <a>
    <ab x="x"><a>z</a></ab>
     
    </a>
    il faut que mon programme soit en xslt est qui utiliser une fois d'élément xsl:element est xsl:copy pour la premier voila mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
     
    <xsl:template match="a">
       <xsl:element name="xsl:template">
     
          <xsl:apply-templates/>
     
       </xsl:element>
     
    </xsl:template>
     
    </xsl:stylesheet>
    j'arrive pas a avoir le bon résultat ,pour xsl:copy je sais pas comment le faire j'ai besoin d'une piste merci pour votre aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    C'est à dire ? Il faut enlever les balises <b> et <z> et leur contenu ?

    Citation Envoyé par jean22 Voir le message
    il faut que mon programme soit en xslt est qui utiliser une fois d'élément xsl:element est xsl:copy pour la premier [...]
    ... Et en français, ça veut dire quoi ?

    Citation Envoyé par jean22 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:element name="xsl:template">
    ... Tu as mis ça au pif ou il y a une raison ?
    Pourquoi tu crées un élément XSLT... Dans ton programme XSLT ? -_-°.

    Citation Envoyé par jean22 Voir le message
    je sais pas comment le faire j'ai besoin d'une piste merci pour votre aide
    Désolé je ne sais pas quoi te dire, ce n'est pas l'endroit pour une initiation au XSLT.
    Je suggère un bon bouquin sur le XSLT, puis de revenir quand tu sais au moins faire un truc ou deux.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    je suis débutant dans xslt est j'essayer d'apprendre ,pour l'élément ces sa mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="ISO-8859-1"?>
     <xsl:stylesheet version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:param name="test" select="a" />
     <xsl:template match="/">
     <xsl:element name="{$test}" >
     </xsl:element>
     </xsl:template>
     </xsl:stylesheet>

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par thelvin Voir le message
    C'est à dire ? Il faut enlever les balises <b> et <z> et leur contenu ?



    ... Et en français, ça veut dire quoi ?



    ... Tu as mis ça au pif ou il y a une raison ?
    Pourquoi tu crées un élément XSLT... Dans ton programme XSLT ? -_-°.



    Désolé je ne sais pas quoi te dire, ce n'est pas l'endroit pour une initiation au XSLT.
    Je suggère un bon bouquin sur le XSLT, puis de revenir quand tu sais au moins faire un truc ou deux.
    je lais trouve dans un exemple

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    pour copy ces sa mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:output method="xml" version="1.0" indent="yes" encoding="ISO-8859-1"/>
    <xsl:template match="/">
    <xsl:copy >
    <a>
    <ab x="x"><a>z</a></ab>
    </a>
    </xsl:copy >
      </xsl:template>
    </xsl:stylesheet>
    mes je suis pas sur de ce que jai fait la , y a tu d'autre façon d'utiliser copy pour avoir le même résultat merci

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je comprends pas trois mots de ce que tu dis.
    Je te souhaite que quelqu'un passe par là et parvienne à déchiffrer ton moyen d'expression très exotique.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Je réfère exclusivement au premier post: le rest, je ne sais pas trop quoi et n'insiste pas à faire comprendre.

    il faut que mon programme soit en xslt est qui utiliser une fois d'élément xsl:element est xsl:copy pour la premier...
    Je ne peux comprendre que fait faire un peu d'extrapolation... Mais, pourquoi se faire ce genre de conditions que dans une question d'examin ou un devoir à domicile pour les étudiants? En tout cas, je peux vous accorder tout la bénéfice du doute pour une fois.

    Voici ce que vous pouvez faire.
    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
    <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:template match="/">
        <xsl:apply-templates select="a" />
    </xsl:template>
    <xsl:template match="a">
        <xsl:element name="{name()}">
            <xsl:apply-templates select="ab" />
        </xsl:element>
    </xsl:template>
    <xsl:template match="ab">
        <xsl:copy>
            <xsl:copy-of select="a|@*" />
        </xsl:copy>
    </xsl:template>
    </xsl:stylesheet>
    Je mets les tournures ici et là xsl:element ou xsl:copy qui peux apparaître bizarre comme conséquences de faire illustrer comment satisfaire les conditions artificielles.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Merci pour votre aide , mon fichier xml :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0"  ?>
    <?xml-stylesheet href="monfichier.xsl" type="text/xsl" ?>
    <a>
    <ab x="x"><b>Test</b><a>z</a></ab>
    <z x="x"><a>z</a></z>
    </a>]
    on souhaitez filtrer le document XML de telle manière que seuls les éléments dont le nom contient la lettre a sont inclus .Naturellement, les éléments, peu importe leur nom, qui ne sont pas contenus dans un élément dont le nom contient la lettre a doivent être omis. Le document XML devra contenir une instruction xml-stylesheet, mais elle ne doit pas être reproduite dans le document sortant. On souhaite que le document sortant soit celui-ci:
    Code résultat XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <a>
    <ab x="x"><a>z</a></ab>
     
    </a>
    on peut utiliser xsl:element est xsl:copy on peut aussi utilisiez autre méthode pour avoir le résultat Merci .

  9. #9
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    on souhaitez filtrer le document XML de telle manière que seuls les éléments dont le nom contient la lettre a sont inclus .
    Cela devient plus clair.

    Vous pouvez le faire comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:output method="xml" encoding="iso-8859-1" indent="yes" />
    <xsl:strip-space elements="*" />
    <xsl:template match="/">
        <xsl:apply-templates select="*[contains(name(),'a')]" />
    </xsl:template>
    <xsl:template match="*[contains(name(),'a')]">
        <xsl:copy>
            <xsl:copy-of select="@*|text()" />
            <xsl:apply-templates select="*[contains(name(),'a')]" />
        </xsl:copy>
    </xsl:template>
    Ce script dépends que le nom de l'élément racine contient la caractère 'a' pourque l'engin puisse tourner... pour produit un document bien-formé. Si non, on peut le modifier sans cette condition initiative, mais le résultat devient un fragment documentaire au lieu un document bien-formé en lui-même.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Merci pour votre aide , je voulais savoirs sil y'avez d'autre façon d'avoir le même résultat par ce que il me démonde 2 façon déférente . merci

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

Discussions similaires

  1. [XSLT] Filtrer un document XML
    Par BakaOnigiri dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/01/2011, 10h33
  2. [XSLT] Filtrer un document XML sur seulement certains noeuds
    Par Tino13 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/05/2007, 18h11
  3. [XML] Outil pour requêter (filtrer) un document xml
    Par aperrin dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/08/2006, 09h03
  4. Stocker du texte mis en forme dans un document XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/02/2003, 10h23
  5. pb formatage document XML généré par un dom tree
    Par lionel69 dans le forum APIs
    Réponses: 11
    Dernier message: 17/10/2002, 09h53

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