From: Eric van der Vlist (vdv@dyomedea.com)
Date: 02/07/2004 - 16:51
On Fri, 2004-07-02 at 18:08, jlefeuvre@tele2.fr wrote:
> la version du parser est identique sur les 2 plateformes.
>
> en fait les erreurs que je rencontre par la suite sont liées à
> l'insertion d'un document DOM dans le document que j'ai créé
>
> // document à inserer
> Document doc1 = (Document)documentList.elementAt(x);
> Node imported = docRoot.importNode(doc1.getFirstChild(), true);
> // insertion du document dans le document en cours de creation
> docRoot.getFirstChild().getLastChild().appendChild(imported);
>
> sachant que
> 1 - le document doc1 (que je veux inserer) est issu d'une
> transformation d'une chaine de caracteres (String representant un
> document xml) en Document via le code suivant
>
> parseBuilder = parseFactory.newDocumentBuilder();
> //convert xml string to document
> InputStream inputStream = new ByteArrayInputStream(chaine1.getBytes("UTF8"));
> document = parseBuilder.parse(inputStream);
Est-ce qu'il n'est pas un peu dommage de convertir votre chaîne en bytes
pour l'envoyer au parseur qui va la reconvertir en chaîne?
Si vous utilisiez la méthode parse(InputSource is) en créant une
InputSource à partir d'un StringReader vous éviteriez cela (et au
passage le fait d'avoir à spécifier l'encodage).
>
> 2 - le document en cours de creation docRoot est créé via la classe
> XMLFactory (cf. code mail precedent ) et non pas par transformation
> d'une chaine de caracteres en document DOM comme pour le document doc1
>
> import com.thales.util.xml.XMLFactory;
>
> XMLFactory root = new XMLFactory();
> if (root == null) throw new XMLException(XML_FACTORY, XML_FACTORY_MSG);
> Document docRoot = root.getDocument();
>
> La question est de savoir si docRoot est bien initialisé avec un encodage UTF8.
Pas vraiment :) ...
La question de l'encodage ne se pose qu'au moment où vous écrirez ce
document sous forme d'un fichier. Tant qu'il est en mémoire, il est
constitué de chaînes unicode quelque soit l'encodage utilisé par la
suite et c'est pourquoi l'interface Document DOM ne permet pas de
spécifier cet encodage.
C'est donc au moment de l'écriture de votre document que vous devriez
spécifier l'encodage (avec Xerces, cela se fait en associant un
"OutputFormat" à votre "XMLSerializer").
Cordialement,
Eric van der Vlist
--
Curious about Relax NG? Read my book online.
http://books.xmlschemata.org/relaxng/
Upcoming XML schema languages tutorial:
- Portland -half day- (27/07/2004) http://masl.to/?E6ED13728
------------------------------------------------------------------------
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
------------------------------------------------------------------------
--
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)
Archive générée par hypermail 2.1.3 le 30/07/2004 - 13:32 UTC
webmaster@xmlfr.org
|