<% Dim oDocXML,oFSO,oEstadisticas,oPaginas,oPagina,oIdioma,oLanguages,oLanguage Dim sFichero,sIdioma,sXPath,sId,sLanguage 'Bloqueamos para garantizar un acceso unico al fichero xml Application.Lock Application("bloqueado")=1 'Abrimos o creamos el fichero xml Set oDocXML=Server.CreateObject("MSXML.DOMDocument") Set oFSO=Server.CreateObject("Scripting.FileSystemObject") sFichero=oFSO.GetParentFolderName(Request.ServerVariables("PATH_TRANSLATED")) & "\estadisticas.xml" If oFSO.FileExists(sFichero) Then oDocXML.async=False Call oDocXML.Load(sFichero) Set oEstadisticas=oDocXML.documentElement Set oPaginas=oEstadisticas.selectSingleNode("paginas") Set oLanguages=oEstadisticas.selectSingleNode("languages") Set oReferencias=oEstadisticas.selectSingleNode("referencias") Else Set oEstadisticas = oDocXML.createNode(1,"estadisticas","") Call oEstadisticas.setAttribute("fechaInicio",Day(Date) & "/" & Month(Date) & "/" & Year(Date)) Call oDocXML.appendChild(oEstadisticas) Set oPaginas=oDocXML.createNode(1,"paginas","") Call oEstadisticas.appendChild(oPaginas) Set oLanguages=oDocXML.createNode(1,"languages","") Call oEstadisticas.appendChild(oLanguages) Set oReferencias=oDocXML.createNode(1,"referencias","") Call oEstadisticas.appendChild(oReferencias) End If '** Actualizamos los accesos a la página 'Buscamos la página sId=Request.QueryString("id") sXPath="pagina[@id='" & sId & "']" Set oPagina=oPaginas.selectSingleNode(sXPath) If oPagina is Nothing Then Set oPagina=oDocXML.createNode(1,"pagina","") Call oPagina.setAttribute("id",sId) Call oPagina.setAttribute("tipo",Request.QueryString("tipo")) Call oPaginas.appendChild(oPagina) End IF Call oPagina.setAttribute("nombre",Request.QueryString("nombre")) 'Buscamos o creamos un nodo para el idioma de la página sIdioma=Request.QueryString("idioma") sXPath="idioma[@id='" & sIdioma & "']" Set oIdioma=oPagina.selectSingleNode(sXPath) If oIdioma is Nothing Then Set oIdioma=oDocXML.createNode(1,"idioma","") Call oIdioma.setAttribute("id",sIdioma) Call oIdioma.setAttribute("accesos","0") Call oPagina.appendChild(oIdioma) End If 'Actualizamos el número de accesos a la página en el idioma actual Call oIdioma.setAttribute("accesos",CLng(oIdioma.getAttribute("accesos"))+1) '** Actualizamos los lenguages de los usuarios 'Buscamos el lenguage del usuario actual sLanguage=Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") sXPath="language[@id='" & sLanguage & "']" Set oLanguage=oLanguages.selectSingleNode(sXPath) If oLanguage is Nothing Then Set oLanguage=oDocXML.createNode(1,"language","") Call oLanguage.setAttribute("id",sLanguage) Call oLanguage.setAttribute("accesos","0") Call oLanguages.appendChild(oLanguage) End IF 'Actualizamos el número de accesos Call oLanguage.setAttribute("accesos",CLng(oLanguage.getAttribute("accesos"))+1) 'Guardamos el fichero Call oDocXML.save(sFichero) 'Desbloqueamos Application("bloqueado")=0 Application.Unlock %>