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] Problème d'expression avec current()


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut [XPath] Problème d'expression avec current()
    Bonjour,

    Voila j'ai un petit problème d'expression Xpath qui va surement vous titillez comme moi:

    Mon expression Xpath qui ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /HRG/Pos/Item
    [not(. = document('toto.xml')/ExtractList/Extract/Firma/descendant-or-
    self::node()/Bez[@Ein = current()/../../Eintrag]/@fldType)]
    mon xml de base:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <HRG>
    	<choix/>
    	<wahl/>
    	<Eintrag>7</Eintrag>
    	<Pos>
    		<Item>FirmaBemerkung</Item>
    		<Item>FirmaLoeschung</Item>
    		<Item>SitzVerlegung</Item>
    		<Item>DivBezeichnung</Item>
    	</Pos>
    </HRG>
    toto.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <ExtractList>
    	<Extract>
    		<Firma>
    			<Bez Ein="1" fldType="Hauptfassung">Nimbo Trading AG</Bez>
    			<Bez Ein="2" fldType="FirmaBemerkung">Nimbo Holding AG</Bez>
    			<Bez Ein="2" fldType="Uebersetzung">(Nimbo Holding Ltd)</Bez>
    			<Bez Ein="5" fldType="FirmaLoeschung">A 1 Gemini Medien AG</Bez>
    			<Bez Ein="7" fldType="FirmaLoeschung">Sternberg AG</Bez>
    			<Bez Ein="10" fldType="Hauptfassung">Sterntaler AG</Bez>
    		</Firma>
    	</Extract>
    </ExtractList>
    Donc j'aimerais avec cette expression séléctionner tout <Item> qui n'ont pas de correspondance dans Bez avec un @Ein qui correspond à l'élément Eintrag du premier xml. Dans ce cas la FirmaLoeschung ne doit pas ressortir.

    Mon problème vient surement du current() car il doit matché dans toto.xml au lieu de mon xml de base comme je le voudrais. Car si je met a la place un chiffre sa marche nickel!

    Avez-vous une idée pour éviter se problème? Ou ce n'est pas trop possible?

    Merci

    Thierry

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    pourquoi ne pas faire un truc ds le genre :

    ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <xsl:param name="val" select="Eintrag"/>
     
    /HRG/Pos/Item
    [not(. = document('toto.xml')//Bez[@Ein = $val]/@fldType)]

  3. #3
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Merci pour la réponse.

    Oui je sais que je pourrais faire comme ca j'y avais déjà pensé mais (je sais je suis compliqué) j'aurais préféré faire ca en une expression Xpath car c'est plus simple a mettre en oeuvre dans Microsoft Office Infopath... mais bon ma fois je vais adapté pour que ca marche de cette facon

    ++

    Thierry

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    ah ok,

    et si tu fais ceci (que je n'ai jamais essayé)


    remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     current()/../../Eintrag
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document('hrg.xml')//Eintrag

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ok nickel je sais pas si ca marche pour un xslt mais en tout cas dans Infopath ca marche! car l'objet n'est pas document() mais xdXDocument:GetDOM().

    Je te l'ai volontairement caché pour pas que ca te fasse peur!

    J'avais déjà essayé une fois mais je m'étais trompé entre xdXDocument:GetDOM("tonxml") et xdXDocument:Get-DOM() l'un renvoit la base primare et l'autre la base contenu dans les guillemet et malheureusement j'avais inversé...

    Merci de m'avoir remis en question avec ton dernier post!

    ++

    Thierry

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

Discussions similaires

  1. [Access] Expression avec une clause SQL faisant appel à une variable
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/06/2006, 13h02
  2. Connection de SQL SERVER 2005 EXPRESS avec HIBERNATE
    Par jerome giraud dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/02/2006, 09h07
  3. [XPATH] [XML] [JAVASCRIPT] Pb de recherche avec apostrophe
    Par lenoil dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/02/2006, 14h28
  4. [Java][Xpath] Problème pour rédiger une expression
    Par althea_vestrit dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/01/2006, 20h53
  5. [XPATH]Acces a un champ precis avec XPath
    Par Le-Cortex dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 13/12/2005, 13h36

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