Un código de operación xmldom para facilitar el código que debe combinarse con xml <script language=vbscript runat=server>
'=================================================== = ============
'Autor: Sé tú mismo
'Hora: 2005-3-15
==================================================== ==========
Clase XMLClase
objXml privado
Documento xml privado
Ruta xml privada
'//================================================ = ==============
'<!--Eventos durante la inicialización y cierre de sesión de la clase-->
Subclase_inicialización
Establecer objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = verdadero
objXml.async = falso
Subtítulo final
Subclase_Terminar
Establecer objXml = Nada
Subtítulo final
'//================================================ = ==============
'<!--Crear un nuevo documento XML-->
Función pública Crear nuevo (sName)
Establecer tmpNode = objXml.createElement(sName)
objXml.appendChild(tmpNode)
Establecer CrearNuevo = tmpNode
Función final
'<!--Leer documento XML desde fuera -->
Función pública OpenXml (sPath)
OpenXml=Falso
sPath=Servidor.MapPath(sPath)
'Respuesta.Escribir(sPath)
xmlPath = ruta_s
Si objXml.load (sPath) Entonces
Establecer xmlDoc = objXml.documentElement
OpenXml=Verdadero
Terminar si
Función final
'<!--Leer cadena XML desde fuera -->
Public Sub LoadXml (sStr)
objXml.loadXML(sStr)
Establecer xmlDoc = objXml.documentElement
Subtítulo final
Public Sub InceptXml (xObj)
Establecer objXml = xObj
Establecer xmlDoc = xObj.documentElement
Subtítulo final
'//================================================ = ==============
'<!--Agregar un nuevo nodo-->
Función pública AddNode(sNode,rNode)
' sNode STRING nombre de nodo
'rNode OBJECT agrega la referencia de nodo superior del nodo
'=================================================== ==============
DimTmpNodo
Establecer TmpNode = objXml.createElement(sNode)
rNode.appendChild TmpNode
Establecer AddNode = TmpNode
Función final
'<!--Agregar un nuevo atributo-->
Función pública AddAttribute(sName,sValue,oNode)
' sName STRING nombre del atributo
' Valor del atributo sValue STRING
' Objeto oNode OBJECT con atributos agregados
'=================================================== ==============
oNode.setAttribute sNombre,sValor
Función final
'<!--Agregar contenido de nodo-->
Función pública AddText(FStr,cdBool,oNode)
Texto tmp tenue
Si cdBool Entonces
Establecer tmpText = objXml.createCDataSection(FStr)
Demás
Establecer tmpText = objXml.createTextNode(FStr)
Terminar si
oNode.appendChild tmpText
Función final
'=================================================== = =================================================== = =====
'<!--Obtener el valor del atributo especificado del nodo-->
Función pública GetAtt(unNombre,oNodo)
' aName STRING nombre del atributo
' oNode Referencia del nodo OBJETO
'=================================================== = =============
valor tmp tenue
tmpValue = oNode.getAttribute(unNombre)
ObtenerAtt = tmpValue
Función final
'<!--Obtener el nombre del nodo-->
Función pública GetNodeName(oNode)
' oNode Referencia del nodo OBJETO
GetNodeName = oNode.nodeName
Función final
'<!--Obtener contenido del nodo-->
Función pública GetNodeText(oNode)
' oNode Referencia del nodo OBJETO
GetNodeText = oNode.childNodes(0).nodeValue
Función final
'<!--Obtener tipo de nodo-->
Función pública GetNodeType (oNode)
' oNode Referencia del nodo OBJETO
GetNodeType = oNode.nodeValue
Función final
'<!--Buscar todos los nodos con el mismo nombre de nodo-->
Función pública FindNodes (sNode)
Dim tmpNodes
Establecer tmpNodes = objXml.getElementsByTagName(sNode)
Establecer FindNodes = tmpNodes
Función final
'<!--Buscar un nodo idéntico-->
Función pública FindNode (sNode)
DimTmpNodo
Establecer TmpNode=objXml.selectSingleNode(sNode)
Establecer FindNode = TmpNode
Función final
'<!--Eliminar un nodo-->
Función pública DelNode (sNode)
Dim TmpNodes,Nodesss
Establecer TmpNodes=objXml.selectSingleNode(sNode)
Establecer Nodesss=TmpNodes.parentNode
Nodesss.removeChild(TmpNodes)
Función final
'<!--Reemplazar un nodo-->
Función pública ReemplazarNodo(sNodo,sText,cdBool)
'reemplazarNiño
Dim TmpNodes,tmpText
Establecer TmpNodes=objXml.selectSingleNode(sNode)
'AñadirTexto sText,cdBool,TmpNodes
Si cdBool Entonces
Establecer tmpText = objXml.createCDataSection(sText)
Demás
Establecer tmpText = objXml.createTextNode(sText)
Terminar si
TmpNodes.replaceChild tmpText,TmpNodes.firstChild
Función final
Instrucción de procesamiento de funciones privadas
'//--Crear declaración XML
objPi tenue
Establecer objPi = objXML.createProcessingInstruction(xml, versión=&chr(34)&1.0&chr(34)& codificación=&chr(34)&gb2312&chr(34))
'//--Añadir vida xml al documento xml
objXML.insertAntes de objPi, objXML.childNodes(0)
Función final
'//================================================ = ================================
'<!--Guardar documento XML-->
Función pública SaveXML()
'Instrucción de procesamiento()
objXml.save(rutaxml)
Función final
'<!--Guardar documento XML-->
Función pública SaveAsXML (sPath)
Instrucción de procesamiento()
objXml.save(sPath)
Función final
'//================================================ = =====================================
'Estadísticas relacionadas
'<!--Obtener el nodo raíz-->
Propiedad obtener raíz
Establecer raíz = xmlDoc
Propiedad final
'<!--Obtener el número de nodos secundarios bajo el nodo raíz-->
Longitud de obtención de propiedad
Longitud = xmlDoc.childNodes.length
Propiedad final
'//================================================ = =====================================
'Pruebas relacionadas
Propiedad GetTestNode
TestNode = xmlDoc.childNodes(0).texto
Propiedad final
Fin de clase
</script>