mrblondeMedlem sedan aug. 20012 349 inlägg jag har en sträng som ser ut så här:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<MESSAGE MSGName="GetEShop" Component="PendingOrders">
<PARAMS>
<EShopID Value="dbEShopID"/>
</PARAMS>
</MESSAGE>
Men när jag tar och gör loadxml så försvinner "encoding biten i huvet", dvs om man skriver ut obj.xml så blir det:
<?xml version="1.0" ?>
<MESSAGE MSGName="GetEShop" Component="PendingOrders">
<PARAMS>
<EShopID Value="dbEShopID"/>
</PARAMS>
</MESSAGE>
Någon som vet vad det kan bero på?
Här är koden exakt hur jag gör:
Dim sql As String, rsm As Adodb.Recordset
Dim msg As Msxml2.DOMDocument30
sql = "SELECT * FROM tblMessageTemplate"
If IsNumeric(vTemplateId) Then
sql = sql & " WHERE TemplateId = " & CLng(vTemplateId)
Else
sql = sql & " WHERE TemplateTitle = '" & vTemplateId & "'"
End If
Set rsm = GetRecordset(sql)
Set msg = CreateObject("MSXML2.DOMDocument.3.0")
msg.async = False
msg.loadXML rsm("TemplateData")
Om jag läser av rsm("TemplateData") så innehåller den den strängen som jag visar överst.
och om jag läser av msg.xml så innhåller den samma minus encoding biten!!??
Någon idé?
------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.
mrblondeMedlem sedan aug. 20012 349 inlägg notera att jag även provat med Spins metod
'test att stoppa in encoding...
Dim objPI As MSXML2.IXMLDOMProcessingInstruction
Set objPI = msg.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'")
msg.insertBefore objPI, msg.childNodes(0)
Set objPI = Nothing
Men resultatet blir fortfarande att encoding="ISO-8859-1" biten inte finns med i huvet :(
------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.
SPiNMedlem sedan mars 20007 896 inlägg Händer samma sak om du använder .load(rsm("TemplateData"))?
------------------
SPiN, bjorne.w@telia.com
-- Tekniska framsteg är som en yxa i händerna på en kriminell galning / Albert Einstein --
mrblondeMedlem sedan aug. 20012 349 inlägg har kommit fram till att den faktistk får rätt encoding, men ajg kunde inte se det, för när jag gör testutskrifter med debug.print msg.xml så kan den bars skriva ut med utf-16 vilket gör att den tar bort min encoding bit och så...
så den laddade faktiskt in rätt.
Problemet nu blev att få ut xml:en som en string, jag blev tvungen att göra msg.save och spara ner det som en txt fil på disk och sen läsa upp den i en string variabel med ett file.readall. Då får jag en korrekt sträng. Suck.
Nästa idiotgrej verkar bli att ta emot det svar jag får på min postning. JAg postar alltså min string med en objHTTP.Send myStringWithXML
När jag sedna läser av objHTTP.ResponseText kan den bara skriva ut i utf-8 och någon mer märlig standard :)
Så jag tänkte ok, då laddar jag in det med objHTTP.responseXML, men jag lyckas inte göra varken msg.load eller msg.loadxml, då ser jag att man kan göra msg.loadxml objHTTP.responseXML.xml
problemet är bara att metoden .xml bara returnerar i utf-16 format... tillbaka till rutan ett.
Det är fanimig helt otroligt!!!
------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.
mrblondeMedlem sedan aug. 20012 349 inlägg vad som är märkligt är att:
objHHTP.ResponseText innehåller rätt svar, men med fel encoding vilket gör att åäö blir fel oc det inte går att ladda.
Kom på att man kunde göra:
objHTTP.ResponseXML.Save("c:\temp.xml")
vilket funkar utmärkt, om det inte vore för det att ResponseXML inte innehåller någonting, den är tom! Fast att det finns text i responseText propertien...
När jag debuggar blir det:
Description: XML document must have a top level element.
Line: 0
ErrCode: -1072896680
Idéer någon ? :q
------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.