El texto es UTF-8 y puede tener toda clase de caracteres. Tengo experiencias más o menos satisfactorias con el objeto "MSXML2.XMLHTTP", aunque no sé porque sólo me funciona con "GET".
Pero el caso es que quería finalmente utilizar Microsoft.XMLDOM y he creado un codigo limpio y sencillo el cual problema "casi" perfectamente.
leeXML.asp
Código:
datos.xml<%Response.Charset = "utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>TAGleado | Tag Search Engine</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <head><body> <% Set objXML = Server.CreateObject("Microsoft.XMLDOM") objXML.async = False strFile = Server.MapPath("datos.xml") objXML.Load (strFile) Set language = objXML.selectNodes("//language") For i = 0 to (language.Length - 1) Response.Write("language: " & language(i).GetAttribute("id") & "<br>" & vbcrlf) Set menu_images = language(i).selectNodes("menu_images") response.write (menu_images(0).text & "<br>" & vbcrlf) Set sel = language(i).selectNodes("sel") Set s = sel(0).selectNodes("s") For j = 0 to (s.Length-1) response.Write(s(j).text & "<br>" & vbcrlf) Next Set sel = nothing Set s = nothing Next Set language = nothing %> </body></html>
Código:
además ambos archivos están codificados UTF-8, y en el ASP, si inserto cualquier caracter UTF-8 lo muestra en pantalla bien, no así lo que recupera del XML. Osea que es el proceso de recuperación de datos del objeto Microsoft.XMLDOM donde pierde la codificación.<?xml version="1.0" encoding="UTF-8"?> <mixml> <language id="test"> <menu_images>مملكة البحرين</menu_images> <sel> <s>opción 1</s> <s>opción 2</s> <s>opción 3</s> <s>opción 4</s> </sel> </language> </mixml>
La pregunta es, ¿cómo logro recuperar los datos en su formato original?
gracias
PD. Aprovecho para decir que acabo de verificar que en JavaScript funciona perfectamente, lo que pasa es que yo preferiría hacerlo desde ASP y weno que también me fastidia cuando sale un error complicadillo como este. Solución tiene que haber porque sino no podrían utilizar este objeto por ejemplo los que utilizan alfabeto cirílico o árabe, etc.