Merci pour vos réponses, en effet il est impératif de déclarer le namespace
implicite du xml dans la xsl, et pour cela il faut inventer un préfixe si
j'ai bien compris (qui n'apparaît que dans la xsl).
ns0 est-il un préfixe spécial ou bien toto ferait la même chose ?
J'ai lu avec attention le topo sur xml-fr, je ne l'avais pas trouvé en
faisant ma recherche... Merci Eric pour le lien !
J'ai ajouté un namespace toto dans ma xsl ayant la même uri que le namespace
implicite de mon xml et écrit le bon préfixe dans les select=... et ça
marche déjà bcp mieux.
J'ai un peu généralisé l'exemple avec un autre namespace préfixé "my:" dans
mon xml :
<?xml version="1.0"?>
<root xmlns="http://matthieu.ricaud.free.fr" xmlns:my="some:uri">
<foo id="12" my:id="my12">blablabal
<my:a>mon A !</my:a>
</foo>
</root>
voici la xsl :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:toto="http://matthieu.ricaud.free.fr"
xmlns:my="some:uri"
xml:space="preserve"
>
<xsl:output method="html" indent="yes" encoding="UTF-8"
omit-xml-declaration="yes"/>
<xsl:template match="toto:root">
node() : <xsl:value-of select="."/>
foo/@id : <xsl:value-of select="toto:foo/@id"/> <br/>
foo/@my:id : <xsl:value-of select="toto:foo/@my:id"/> <br/>
foo/my:a <xsl:value-of select="toto:foo/my:a"/>
</xsl:template>
</xsl:stylesheet>
le résultat est :
node() : blablabal
mon A !
foo/@id : 12 <br xmlns:toto="http://matthieu.ricaud.free.fr"
xmlns:my="something:unique">
foo/@my:id : my12 <br xmlns:toto="http://matthieu.ricaud.free.fr"
xmlns:my="something:unique">
foo/my:a mon A !
Y a-t-il moyen d'éviter que les namespace soient spécifiés en output des
éléments html comme le <br/>
j'ai essayé pas mal de choses mais en vain :
- j'ai essayé tout simplement <br xmlns=""> mais ça ne change pas le
résultat
-dans xsl:stylesheet déclaration du namespace préfixé html
xmlns:html="http://www.w3.org/1999/xhtml" en précisant
exclude-result-prefixes="html" et en écrivant <html:br/> au lieu de <br/>
==> résultat : <html:br xmlns:toto="http://matthieu.ricaud.free.fr"
xmlns:my="something:unique" xmlns:html="http://www.w3.org/1999/xhtml"/>
Je continue mes tests et mes recherches, je sais qu'il s'agit de probèmes
courants je devrais m'en sortir avec les faq mais si vous avez un coup de
pouce pour me booster, je ne suis pas contre ;)
cordialement,
Matthieu
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
part de Sandrine Soudant
Envoyé : vendredi 21 octobre 2005 12:59
À : xml-tech@xmlfr.org
Objet : [xml-tech] Re: pb de namepace avec msxml
Bonjour,
Avez-vous essayer d'ajouter xmlns:ns0="http://matthieu.ricaud.free.fr"
à la balise xsl:stylesheet de votre xsl ?
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Fri Oct 21 16:57:36 2005