View Full Version : Encoding via DOM
Tjenare!
Hur kommer jag åt så att jag kan ändra encoding på ett XML-dokument i efterhand (och när jag skapar det) via DOM?
*Notering: Jag spara XML-filen via save på ett recordet.*
Mvh, Vide
------------------
Mostly Harmless (http://www.webeye.nu)
Med metoden createProcessingInstruction() kan du sätta data för hur XML-dokumentet behandlas. Vet dock inte om det ersätter, uppdaterar, eller lägger till de nya instruktionerna. :l
set objXML = Server.CreateObject ( "Microsoft.XMLDOM" )
set objPI = objXML.createProcessingInstruction ( "xml", "version=""1.0"" encoding=""ISO-8859-1""" )
objXML.insertBefore objPI, objXML.childNodes.Item ( 0 )
objXML.save
------------------
SPiN, bjorne.w@telia.com
-- En ask vet jag stånda - den Yggdrasil heter, ett väldigt träd överöst av vita sanden. --
Du fick mig på rätt köl iaf, jag använde metoden "setAttribute" efter det att jag sparat filen, vilket egentligen var vad jag ville... ;)
Problemet är att någonstans i sparningen så konverterar den alla konstiga tecken (&,å,ä,ö) till något jag inte sett förut, allt konverteras tillbaks när man hämtar datat igen, förutom & som ligger som &.
Hur löser jag det mån tro?
------------------
Mostly Harmless (http://www.webeye.nu)
Går det inte om du sätter de som ENTITYs?
Typ:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Vides [
<!ENTITY o_dots "ö">
<!ENTITY a_dots "ä">
<!ENTITY a_dot "å">
]>
<rotelement>
<element2>&o_dots;</element2>
<element3>&a_dot;</element3>
</rotelement>
När du lägger in din information i XML-dokumentet så byter du bara ut ( Replace, alltså :) ) å,ä,ö mot &a_dot;, &a_dots;,&o_dots;.
Sitter bara och gissar, har inget direkt svar på din fråga. :l
------------------
SPiN, bjorne.w@telia.com
-- En ask vet jag stånda - den Yggdrasil heter, ett väldigt träd överöst av vita sanden. --
Så kan man förstås göra, men det borde finnas ett inbyggt sätt för det där... tycker man iaf...
------------------
Mostly Harmless (http://www.webeye.nu)
vBulletin® v3.8.6, Copyright ©2000-2013, Jelsoft Enterprises Ltd.