amiguetes, llevo días buscando varias formas de crear un XML con un texto, que luego quiero recuperar desde ASP.
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:
<%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>
datos.xml
Código:
<?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>
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.
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.