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><SPAN ALIGN= "LEFT" STYLE= "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) >