Discussion:
utilisation XLS - récupérer juste un type de balise
(trop ancien pour répondre)
YgoogleY
2010-04-02 09:13:13 UTC
Permalink
Bonjour,

j'ai un document XML très volumineux contenant de nombreuses balises.
J'aimerai pouvoir produire un autre document (dans l'idéal un fichier
csv mais sinon un fichier html fera l'affaire) qui ne récapitulera qu
'un attribut contenu dans une balise du document XML.
J'essaie de faire cela avec XSLT mais sans résultat.

un exemple pour bien comprendre

Fichier XML :
--------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="CER26.xsl" type="text/xsl"?>
<Balise-1>
<Balise-2 ID="aaa">
<Balise-3>
blabla
</Balise-3>
</Balise-2>
<Balise-2 ID="bbb">
<Balise-3>
blabla
</Balise-3>
</Balise-2>
</Balise-1>

L'objectif est de récupérer uniquement les valeurs des attributs ID
des <Balise-2> donc de produire un document de ce style :

- aaa
- bbb

Voici un exemple de fichier XSLT que j'ai essayé :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/
Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD
XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/
xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html>
<body>
<ul>
<li>
<xsl:value-of select="/@ID"/>
</li>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Sans obtenir le résultat escompté.

En vous remerciant par avance de votre aide

cordialement,

Y.
Marc
2010-04-02 20:04:31 UTC
Permalink
Bonjour,
En fait le template qui va récupérer tous les attributs ID (en
majuscule) est
<xsl:template match="@ID">
<xsl:value-of select="."/>
</xsl:tempalte>

pour parcourir tous les noeuds et les attributs sans les textes :
<xsl:template match="*">
<xsl:apply-template select = "* | @*"/>
</xsl:template>


marc
Post by YgoogleY
Bonjour,
j'ai un document XML très volumineux contenant de nombreuses balises.
J'aimerai pouvoir produire un autre document (dans l'idéal un fichier
csv mais sinon un fichier html fera l'affaire) qui ne récapitulera qu
'un attribut contenu dans une balise du document XML.
J'essaie de faire cela avec XSLT mais sans résultat.
un exemple pour bien comprendre
--------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="CER26.xsl" type="text/xsl"?>
<Balise-1>
<Balise-2 ID="aaa">
<Balise-3>
blabla
</Balise-3>
</Balise-2>
<Balise-2 ID="bbb">
<Balise-3>
blabla
</Balise-3>
</Balise-2>
</Balise-1>
L'objectif est de récupérer uniquement les valeurs des attributs ID
- aaa
- bbb
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/
Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD
XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/
xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html>
<body>
<ul>
<li>
</li>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Sans obtenir le résultat escompté.
En vous remerciant par avance de votre aide
cordialement,
Y.
Loading...