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 :

lxml position xpath


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2013
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 229
    Points : 109
    Points
    109
    Par défaut lxml position xpath
    Bonjour

    Je fait une requete XPath comme suit :
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import xml.etree.ElementTree as ET
     
     
    xmlfile = r'C:\extraction_CZZ\file.cc'
     
    tree = ET.parse(xmlfile)
    root = tree.getroot()
     
    for elm in root.findall("./Geometries/Geometry[3]/Datas/Insert[@insertType = '3']"):
           print(elm.attrib["refName"])

    qui fonctionne tres bien.

    Mais j'aimerais recuperer la position total comme l'exmple ci-dessous

    normalment chaque element trouvé devrait avoir une XPATH avec un index (en gras italique
    ./Geometries/Geometry[3]/Datas/Insert[57235]

    comme puis je faire SVP ?

    MErci

  2. #2
    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 dirais utiliser lxml qui supporte pleinement xpath 1.0.

    On peut obtenir l'indice (e.g. 53275 qui est base-un) de chaque elm comme ça.

    Code python3 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from lxml import etree
    xmlfile = r'C:\extraction_CZZ\file.cc'
     
    tree = etree.parse(xmlfile)
    root = tree.getroot()
     
    for elm in root.findall("./Geometries/Geometry[3]/Datas/Insert[@insertType = '3']"):
        print(elm.attrib["refName"])
        idx=int(elm.xpath('count(./preceding-sibling::Insert)')+1)
        print(f'index: {idx}')

Discussions similaires

  1. [XPATH] Position d'un noeud par rapport à la racine ?
    Par DemonKN dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 22/10/2008, 18h51
  2. [XPATH] position d'un element
    Par foubou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/04/2008, 14h16
  3. [XPath]Connaitre la Position() de l'élément parent
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/04/2007, 11h28
  4. [XSL][XPATH] pour les tueurs (position() generate-id....
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 15/11/2005, 10h26
  5. [XPath] Position d'un élément
    Par ovh dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 07/04/2003, 15h26

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