Discussion:
xml et namespace
(trop ancien pour répondre)
Bernard
2006-10-31 09:58:56 UTC
Permalink
Bonjour

J'ai ce fichier xml valide avec un namespace:
<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="toto" version="1.1" xmlns="http://www.topografix.com/GPX/1/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1
http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk>
<name>toto</name>
<trkseg>
<trkpt lon="1" lat="1"/>
</trkseg>
</trk>
</gpx>



J'essaye de le transformer avec ce XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<p>Liste</p>
<ul>
<xsl:apply-templates select="//trkpt"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="//trkpt">
<li>
<xsl:text>lon: </xsl:text>
<xsl:value-of select="@lon"/>
</li>
</xsl:template>
</xsl:stylesheet>


Et ca ne fonctionne pas. Si j'enlève l'attibut XMLNS de mon fichier XML, la transformation est ok, mais le fichier n'est
plus valide.

En essayant de debugger avec ALTOVA , le traitement de transformation ne détecte pas le *<xsl:apply-templates
select="//trkpt"/>*

J'ai essayé différents trucs, mais comme je suis quasi-débutant en xml, j'ai fait ces tests sans conviction

Si quelqu'un a une explication, je suis preneur.



D'avance merci

Bernard
Bernard
2006-10-31 11:36:15 UTC
Permalink
Bon, j'ai trouvé (pas tout seul, grace aux forums sur www.developpez.net).

Mon XSL a été modifié en ajoutant le xmlns adéquat et adapté (très peu) sans modif du fichier xml
Le nouveau XSL est:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:gpx="http://www.topografix.com/GPX/1/1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<p>Liste</p>
<ul>
<xsl:apply-templates select="//gpx:trkpt"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="gpx:trkpt">
<li>
<xsl:text>lon: </xsl:text>
<xsl:value-of select="@lon"/>
</li>
</xsl:template>
</xsl:stylesheet>

Continuer la lecture sur narkive:
Loading...