Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1284 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XPATH] Chemin fonctionnel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XPATH] Chemin fonctionnel

n°1491577
omman95
Posté le 14-12-2006 à 22:23:57  profilanswer
 

Bonjour a tous, j'ai un projet à rendre pour demain et j'ai beau chercher dans mes cours, je trouve pas comment on fait .
 
Voila mon probleme.
 
J'ai par exemple ce XML

Citation :


<?xml version="1.0"?>  
<nouvelles>  
    <nouvelle>
  <id>1</id>
        <contenu>Monsieur et Madame RR</contenu>
        <date>10/10/2004</date>
    </nouvelle>
    <nouvelle>
  <id>2</id>
        <contenu>Monsieur et Madame TT</contenu>
        <date>10/10/2005</date>
    </nouvelle>
</nouvelles>


 
Voila les requetes que je connait :
 
Afficher tous les id :
/nouvelles/nouvelle/id
 
Affiche :  
1
2
 
 
 
Afficher tous les contenu:
/nouvelles/nouvelle/contenu
 
Affiche :  
Monsieur et Madame RR
Monsieur et Madame TT
 
 
 
Ma demande est la suivante :
Afficher le contenu qui a pour id 1:
??
 
Affiche:
Monsieur et Madame RR
 
PS: Avec id en attribut de nouvelle ca marche tres bien.
exemple :  

Citation :

   <nouvelle id="1">
          <contenu>Monsieur et Madame RR</contenu>
        <date>10/10/2004</date>
    </nouvelle>


Afficher le contenu qui a pour id 1:
/nouvelles/nouvelle [@id="1"]
 
Affiche:
Monsieur et Madame RR
 
Mais je ne peux pas mettre en attribut.
Obligation du client.
 
Si quelqu'un a la solution.
 
Merci de votre aide.


Message édité par omman95 le 14-12-2006 à 22:32:41
mood
Publicité
Posté le 14-12-2006 à 22:23:57  profilanswer
 

n°1493197
avander
Posté le 19-12-2006 à 10:48:05  profilanswer
 

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
<!-- general settings -->
  <xsl:output method="text" omit-xml-declaration="no" encoding="ISO-8859-1"/>
 
<!-- parameters -->
 
<!-- global variables -->
 
<!-- transformations -->
 
  <xsl:template match="/">
    <xsl:apply-templates select="//nouvelle/contenu[ ../id = '1']" />
  </xsl:template>
 
 
  <xsl:template match="contenu">
    <xsl:text> Contenu: </xsl:text><xsl:value-of select="." />
    <xsl:text>
</xsl:text>
  </xsl:template>
 
</xsl:stylesheet>
<!-- eof -->


 
Ca te va?  :whistle:

n°1493451
MagicBuzz
Posté le 19-12-2006 à 14:56:54  profilanswer
 

pourquoi ../id ? id tout court ça marche pas :??:
 
sinon, c'est pas un xpath que tu lui propose, mais un appel à un template à partir d'un chemin pas entier :p
 
/nouvelles/nouvelle[id=1]/contenu

n°1493570
avander
Posté le 19-12-2006 à 15:55:32  profilanswer
 

MagicBuzz a écrit :

pourquoi ../id ? id tout court ça marche pas :??:


 
Parce que je selectionne le contenu qui a un frèrot id à 1...
 

MagicBuzz a écrit :


sinon, c'est pas un xpath que tu lui propose, mais un appel à un template à partir d'un chemin pas entier :p
 
/nouvelles/nouvelle[id=1]/contenu


 
J'ai fait un petit stylesheet pour mettre au point mon xpath... reste à trier un peu, sinon ça serait pas amusant.

n°1493585
MagicBuzz
Posté le 19-12-2006 à 16:07:47  profilanswer
 

je ne vois toujours pas pourquoi les .. :spamafote:

n°1493648
avander
Posté le 19-12-2006 à 17:15:04  profilanswer
 

<?xml version="1.0"?>  
<nouvelles>  
    <nouvelle>
        <id>1</id>
        <contenu>Monsieur et Madame RR</contenu>
        <date>10/10/2004</date>
    </nouvelle>
    <nouvelle>
        <id>2</id>
        <contenu>Monsieur et Madame TT</contenu>
        <date>10/10/2005</date>
    </nouvelle>
</nouvelles>


 

<xsl:apply-templates select="//nouvelle/contenu[ ../id = '1']" />


 
On fait la même chose... mais différemment... id est un frère de contenu pas un descendant.  
 

n°1493672
MagicBuzz
Posté le 19-12-2006 à 17:33:34  profilanswer
 

faudra que je teste. à moins que msxml ne fasse pas pareil que le tiens, habituellement j'ai pas besoin de mettre les .. logiquement, dans les [] y'a pas de notions de profondeur (ce que je veux dire, c'est qu'après les [], on continue au niveau du noeud indiqué avant les crochets, pas de ce qu'il y a dans les crochets...)
 
arf, je viens de piger.
 
pkoi pas :
 


<xsl:apply-templates select="//nouvelle[id = '1']/contenu" />  


 
plus lisible non ?


Message édité par MagicBuzz le 19-12-2006 à 17:33:48

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XPATH] Chemin fonctionnel

 

Sujets relatifs
[xml] aide expression xpath !javascript dans chemin xml
XPath : Tout les élement ne contenant pas un attribut donnéredirection 401 htaccess en chemin absolu ?
Modification chemin accès dans macro par userformXPath et noeud avec :
[Question con] Chemin vers un fichier et double \Chemin réseau en vbs
Chemin des images[Résolu]Problème avec le chemin du fichier courant!
Plus de sujets relatifs à : [XPATH] Chemin fonctionnel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR