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 :

Chevauchement de dates [XPATH 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Chevauchement de dates
    Bonjour à tous,

    Dans le cadre d'un projet, je souhaiterai filtrer un fichier XML afin identifier les codes articles qui possèdent des dates de validités qui se chevauchent.
    Dans l'exemple suivant, seul l'article C doit être identifié.

    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
    <ListofArticles>
    	<Articles>
    		<code>B</code>
    		<startdate>2003-01-01</startdate>
    		<enddate>2010-01-01</enddate>
    	</Articles>
    	<Articles>
    		<code>C</code>
    		<startdate>2000-01-01</startdate>
    		<enddate>2010-01-01</enddate>
    	</Articles>
    	<Articles>
    		<code>D</code>
    		<startdate>2002-01-01</startdate>
    		<enddate>2010-01-01</enddate>
    	</Articles>		
    	<Articles>
    		<code>B</code>
    		<startdate>2011-01-01</startdate>
    		<enddate>2015-01-01</enddate>
    	</Articles>
    	<Articles>
    		<code>C</code>
    		<startdate>2001-01-01</startdate>
    		<enddate>2011-01-01</enddate>
    	</Articles>	
    </ListofArticles>
    Cette fonctionnalité doit être implémentée en XPath 1.0.

    Par avance merci bcp pour vos réponses

  2. #2
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    Bonjour
    Qu'as-tu essayé jusqu'à présent ?

    Citation Envoyé par wilfrid.roux Voir le message
    Bonjour à tous,

    Dans le cadre d'un projet, je souhaiterai filtrer un fichier XML afin identifier les codes articles qui possèdent des dates de validités qui se chevauchent.
    Dans l'exemple suivant, seul l'article C doit être identifié.

    Cette fonctionnalité doit être implémentée en XPath 1.0.

    Par avance merci bcp pour vos réponses

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Re bonjour,

    Voici ce que j'ai construis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count(//Articles[((20000101 <= translate(startdate,"-","") and translate(startdate,"-","") <= 20100101) or (20000101 <= translate(enddate,"-","") and translate(enddate,"-","") <= 20100101)) and code="C"]/code)
    Ce bout de code permet de retrouver des chevauchements à partir d'une données d'origine. (Dans ce cas, il s'agit de la première occurence de C). Mais, là je ne vois pas comment rendre le "code" opérationnel sans avoir à lui fournir des données de comparaison. En fait, il doit prendre la première structure Articles, et la comparer aux autres structures, prendre la seconde et faire de même, et ainsi de suite.

    Merci de vos retours et/ou bouts de code et/ou pistes de recherche.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 566
    Points : 21 635
    Points
    21 635
    Par défaut
    - C'est impossible avec une expression XPath 1.0.
    - C'est envisageable (mais assez compliqué) avec un for-each de for-each en XSLT. Après tout dépend de ce que tu veux produire une fois que tu les as détectés, ces chevauchements.
    - C'est peut-être faisable en XPath 2.0, qui permet pratiquement de programmer, mais je ne suis pas sûr.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    OK, merci pour tes informations. Je pense solutionner mon pb, en modifiant les exports des applications en amont de mon traitement.
    Bonne journée à tous

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

Discussions similaires

  1. Chevauchement de date simultanés
    Par Pothot dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 23/05/2014, 11h03
  2. Chevauchement de dates
    Par jlempis dans le forum Doctrine2
    Réponses: 0
    Dernier message: 05/02/2013, 20h49
  3. Chevauchement de dates
    Par eddy37fr dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/04/2008, 20h00
  4. [VBA-E]Calculer nbre de Jrs avec chevauchement de dates
    Par YoungBlood dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/06/2006, 20h55
  5. [Strategie] Nombre de jours se chevauchant entre 2 fois 2 dates
    Par vallica dans le forum Général Java
    Réponses: 4
    Dernier message: 16/05/2006, 16h46

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