Re: recuperer le text() d'un node pour le parser

lejeune <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Merci pour vos éclaircissements.

Le 9 oct. 06 à 17:27, Eric van der Vlist a écrit :

> Bonjour,
> Le lundi 09 octobre 2006 à 15:33 +0200, lejeune a écrit :
>> Bonjour,
>>
>> J'ai un petit soucis pour parser le text() d'un node.
>> Celui-ci contient un balisage que je voudrais pouvoir parser.
>> avec de simples templates.
>
> C'est malheureusement impossible (dans le cas général) de manière  
> simple
> en XSLT 2.0 comme en XSLT 1.0!

dommage, je ne voulais pas faire de parsing avec les "outils" chaines  
de xslt.
>
>> Dans le xml source j'ai un élément contenant du texte :
>> <ED_NOM_SITE>&lt;SPAN ALIGN= &quot;LEFT&quot; STYLE= &quot;text- 
>> align...
>>
>> Dans la feuille xsl, je crée un arbre temporaire :
>>         <xsl:variable name="test" as="node()">
>>              <xsl:document>
>>                  <xsl:value-of select="text()"/>
>>              </xsl:document>
>>          </xsl:variable>
>
> Apparemment, vous utilisez XSLT 2.0.
>
>> mais je ne récupère que le texte d'origine.
>
> Effectivement, et c'est conforme aux spécifications :) ...
>
>> Si je fais une requête xPath sur le fichier xml dans l'environnement
>> de dev (oXygen) j'ai bien :
>> /STRUCT_FEU[1]/STRUCT[1]/ED_NOM_SITE[1] - <SPAN ALIGN= "LEFT" STYLE=
>> "text-align: left"><FONT FACE= "Times"...
>
> Parce que oXygen affiche le noeud texte "brut" sans remplacer les
> caractères de balisage par des entités...
>
>> Si quelqu'un pouvait m'orienter, ce ne serait pas de refus.
>
> Sauf à vouloir écrire une parseur XML en XSLT, il n'y a pas de  
> solution
> universelle.
>
> Si le contexte vous permet d'écrire des documents sur disque, vous
> pouvez néanmoins créer un document XML dans lequel vous écrirez ce
> fragment de XML (en utilisant une méthode de sortie text pour  
> éviter que
> le processeur ne remplace les caractères de balisage) puis lier ce
> document avec la fonction document().

J'ai réalisé cette alternative. Je crée un document sur disque avec
<xsl:result-document href="tmp.xml" use-character-maps="cmap">.
Mais ayant plusieurs fichiers xml source, je ne peux pas gérer
plusieurs tmp.xml. Je ne peux procéder de la sorte qu'une fois !!!

Je pense à "sed" pour me sortir d'affaire...
>
> Cordialement,
Cordialement
>
> Eric van der Vlist
>
> -- 
> GPG-PGP: 2A528005
> Curious about Relax NG? Read my book online.
>                                    http://books.xmlschemata.org/ 
> relaxng/
> ---------------------------------------------------------------------- 
> --
> Eric van der Vlist       http://xmlfr.org            http:// 
> dyomedea.com
> (ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
> (W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/ 
> xmlschema
> ---------------------------------------------------------------------- 
> --
>
>
> -- Attached file included as plaintext by Ecartis --
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2.2 (GNU/Linux)
>
> iD8DBQBFKmpMDvn+ZCpSgAURAtRmAJ9/k4m+m1Km0lhlxvjpy1AV0zRHlgCbBV4J
> TJZ1016pusqzlxONvYc3bRo=
> =U2Z3
> -----END PGP SIGNATURE-----
>
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "[email protected]" (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 [email protected]
> (mailto:[email protected]?Subject=unsubscribe)
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.