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!!??
'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 :(
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.
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