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 :

[XPath] Comment sélectionner un élément ? [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 80
    Par défaut [XPath] Comment sélectionner un élément ?
    Bonjour,
    Je suis débutant dans tout ce qui concerne XML: voici mon document

    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
    <?xml version="1.0" encoding="ISO-8859-2"?>
    <accountingAttributes>
    <element>
    <name>CHARGING.SESSION.TIME</name>
    <value>time disable</value>
    </element>
    <element>
    <name>CALLED-STATION-ID</name>
    <value>APN_t</value>
    </element>
    <element>
    <name>SERVICE-TYPE</name>
    <value>1</value>
    </element>
    <element>
    <name>NAS-IDENTIFIER</name>
    <value>mcad7p32</value>
    </element>
    <element>
    <name>USER-NAME</name>
    <value>123456789</value>
    </element>
    <element>
    <name>ACCT-SESSION-ID</name>
    <value>123456789</value>
    </element>
    <element>
    <name>CALLING-STATION-ID</name>
    <value>123456789</value>
    </element>
    <element>
    <name>FRAMED-IP-ADDRESS</name>
    <value>155.132.215.51</value>
    </element>
    <element>
    <name>ACCT-STATUS-TYPE</name>
    <value>1</value>
    </element>
    </accountingAttributes>
    En utilisant XPath je voudrais récupérer la valeur de l'élement "value" contenu dans l'element "element" et dont la valeur de l'élément "name" est "CHARGING.SESSION.TIME".

    Merci pour votre aide

  2. #2
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    //element/name[.='CHARGING.SESSION.TIME']/parent::*/value
    code non testé mais bon il doit y avoir de l'idée

  3. #3
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    je viens de tester
    fichier essai.xml
    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
     
    <?xml version="1.0" encoding="ISO-8859-15"?>
    <accountingAttributes>
      <element>
        <name>CHARGING.SESSION.TIME</name>
        <value>time disable</value>
      </element>
      <element>
        <name>CALLED-STATION-ID</name>
        <value>APN_t</value>
      </element>
      <element>
        <name>SERVICE-TYPE</name>
        <value>1</value>
      </element>
      <element>
        <name>NAS-IDENTIFIER</name>
        <value>mcad7p32</value>
      </element>
      <element>
        <name>USER-NAME</name>
        <value>123456789</value>
      </element>
      <element>
        <name>ACCT-SESSION-ID</name>
        <value>123456789</value>
      </element>
      <element>
        <name>CALLING-STATION-ID</name>
        <value>123456789</value>
      </element>
      <element>
        <name>FRAMED-IP-ADDRESS</name>
        <value>155.132.215.51</value>
      </element>
      <element>
        <name>ACCT-STATUS-TYPE</name>
        <value>1</value>
      </element>
    </accountingAttributes>
    fichier essai.xsl
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output 
      encoding="ISO-8859-15"
      method="html"
      doctype-public="-//W3C//DTD HTML 4.01//EN"
      doctype-system="http://www.w3.org/TR/html4/strict.dtd"
      indent="yes" />
     
    <xsl:template match="/">
      <res>
          <xsl:apply-templates select="//element/name[.='CHARGING.SESSION.TIME']/parent::*/value" />
      </res>
    </xsl:template>
     
    <xsl:template match="value">
      <val>
        <xsl:value-of select="." />
      </val>
    </xsl:template>
     
    </xsl:stylesheet>
    fichier résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <res>
    <val>time disable</val>
    </res>

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 80
    Par défaut
    Merci bcp, c'est exactment ce dont j'avais besoin..

  5. #5
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    si cela a put t'aider
    @+

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 80
    Par défaut Sélection du nom d'un élement
    Bonjour,
    J'ai maintenant besoin de sélectionner le nom d'un élement en XPath, j'ai utilisé la fonction "name()" mais elle ne me retourne aucun résultat
    voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="ISO-8859-2"?>
    <chargingRecord>
    <userContext>
    <triggerPoint>
    <accountingType><stop/></accountingType>
    </triggerPoint>
    </userContext>
    </chargingRecord>
    Je voudrais récupérer le nom de l'élement fils de "accountingType" qui est "stop"

    Est ce qu'il y a une bonne référence que je pourrais utiliser pour trouver mes requette XPath?

    Merci d'avance

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

Discussions similaires

  1. [Débutant] Comment sélectionner les éléments d'une liste ?
    Par kheironn dans le forum Entity Framework
    Réponses: 2
    Dernier message: 17/05/2013, 11h36
  2. Réponses: 3
    Dernier message: 12/04/2010, 18h57
  3. Réponses: 6
    Dernier message: 10/08/2007, 17h38
  4. [VB6][ListView]Comment sélectionner un élément à partir de sa clé ?
    Par exclusif dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/08/2007, 15h41
  5. [TTreeview] Comment sélectionner un élément de l'arbre ?
    Par altahir007 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/04/2005, 13h44

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