Código asp:
Ver original<%
'archivo para ejemplos: [datos.xml]
'<sitio>
' <columnas>
' <izq>10</izq>
' <der>20</der>
' <cen>30</cen>
' </columnas>
' <columnas2>
' <izq>40</izq>
' <der>50</der>
' <cen>60</cen>
' </columnas2>
' <nombre>Mi Sitio</nombre>
'</sitio>
function leerXML(archivoXML, nombreDato)
' Los parametros son:
' -archivoXML: ruta del archivo XML
' -nombreDato: nombre del dato a buscar
'
' ej:
'
' a = leerXML(server.mappath("datos.xml"), "columnas/der") 'a = "20"
' b = leerXML(server.mappath(".") & "\datos.xml", "nombre") 'b = "Mi Sitio"
'Creo el objeto de XMLDOM
set xml = server.CreateObject("Microsoft.XMLDOM")
'No dejo que el archivo se edite si está en uso
xml.async="false"
'Cargo el archivo
xml.load(archivoXML)
'si el archivo XML tiene errores
if xml.parseError.errorCode <> 0 then
response.Write("<font face = ""arial"" size = ""-1""> Hay un error en el archivo XML (<b>" & archivoXML & "</b>): <b>" & xml.parseError.reason & "<p>")
response.Write("</b>Linea: <b>" & xml.parseError.line & " </b>Posicion: <b>" & xml.parseError.linepos)
response.end
end if
'Obtengo los elementos del archivo
set elementos = xml.documentElement
'Obtengo el nodo deseado(dato deseado)
set nodo = elementos.selectSingleNode(nombreDato)
'si no se pudo cargar el nodo
if nodo is nothing then
response.Write("<font face = ""arial"" size = ""-1""> Hay un error en el archivo XML (<b>" & archivoXML & "</b>) con el nodo buscado (<b>" & nombreDato & "</b>) : <b>El nodo buscado no existe")
response.end
end if
'obtengo el texto del nodo y lo devuelvo
leerXML = nodo.text
set nodo = nothing
set elementos = nothing
set xml = nothing
end function
sub modificarXML(archivoXML, nombreDato, nuevoValor)
' Los parametros son:
' -archivoXML: ruta del archivo XML
' -nombreDato: nombre del dato a modificar
' -nuevoValor: nuevo valor para el dato encontrado
'
' ej:
'
' a = modificarXML(server.mappath("datos.xml"), "columnas/der", "10") '<der>10</der>
' b = modificarXML(server.mappath(".") & "\datos.xml", "nombre", "Nuestro Sitio") '<nombre>Nuestro Sitio</nombre>
'Creo el objeto de XMLDOM
set xml = server.CreateObject("Microsoft.XMLDOM")
'No dejo que el archivo se edite si está en uso
xml.async="false"
'Cargo el archivo
xml.load(archivoXML)
'si el archivo XML tiene errores
if xml.parseError.errorCode <> 0 then
response.Write("<font face = ""arial"" size = ""-1""> Hay un error en el archivo XML (<b>" & archivoXML & "</b>): <b>" & xml.parseError.reason & "<p>")
response.Write("</b>Linea: <b>" & xml.parseError.line & " </b>Posicion: <b>" & xml.parseError.linepos)
response.end
end if
'Obtengo los elementos del archivo
set elementos = xml.documentElement
'Obtengo el nodo deseado(dato deseado)
set nodo = elementos.selectSingleNode(nombreDato)
'si no se pudo cargar el nodo
if nodo is nothing then
response.Write("<font face = ""arial"" size = ""-1""> Hay un error en el archivo XML (<b>" & archivoXML & "</b>) con el nodo buscado (<b>" & nombreDato & "</b>) : <b>El nodo buscado no existe")
response.end
end if
'obtengo el texto del nodo y lo devuelvo
nodo.text = nuevoValor
xml.save archivoXML
set nodo = nothing
set elementos = nothing
set xml = nothing
end sub
%>