18. maj 2004 - 15:29Der er
9 kommentarer og 1 løsning
Sætte en UTF-8 værdi i DOM-træ
Jeg har problemer med at sætte en streng indeholdende fx "æøå" ved hjælp af myNode.setNodeValue("Værdi").
DOM-træet er created ud fra en XML-fil, som har encoding="UTF-8".
Kun værdien frem til specialtegnet bliver sat på noden. Hvis man herefter beder om at få udskrevet hele XML-træet, vises kun værdierne indtil det pågældende tegn, dvs. XML'en bliver ugyldig, da end-tags smides væk.
Hvordan får jeg sat en værdi på en text node, hvor denne kan være UTF-8?
-> arne_v, tak for din kommentar. Det *var* udskrivningen, som fejlede. Problemet er imidlertid mere nuanceret. Det ser nemlig ud til at problemet opstår, fordi XML-dokumentet proppes ind i et felt i en SOAP-envelope, og denne fejler så ved modtagelsen på en webservice.
Er en SOAP-envelope UTF-8 som default, og i modsat fald, hvordan sættes encoding på SOAP?
Koden omkring afsendelse/modtagelse af SOAP-kuvert ser således ud:
// create message envelope and body Envelope msgEnv = new Envelope(); Body msgBody = new Body(); Vector vect = new Vector(); vect.add(parameters); msgBody.setBodyEntries(vect); msgEnv.setBody(msgBody); // create and send message Message msg = new Message(); msg.send(getURL(), SOAPActionURI, msgEnv);
// receive response envelope Envelope env = msg.receiveEnvelope(); Body retbody = env.getBody(); java.util.Vector v = retbody.getBodyEntries();
Problemet lå et andet sted, nemlig i den rutine, som tog DOM-træet og lavede om til en streng. Det er løst nu, tak for indsatsen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.