'************************************************ * * ' Descripción: Clase de persona ' Autor: gwd 2002-11-06 ' Referencia: pub/constpub.asp '************************************************ * * Clase Cls_Person Private m_intId 'Id, correspondiente a la posición del nodo Persona en la colección Personas Privado m_strName ' Nombre Privado m_strNick ' Nombre en inglés Privado m_strMobile 'Teléfono móvil Privado m_strTel 'Teléfono Privado m_strEmail ' Correo electrónico Privado m_strQQ 'Número QQ Privado m_strCompany ' Empresa
Inicialización de clase privada m_strError 'mensaje de error ' Subclase privada_Initialize() m_strError = "" m_intId = -1 Finalizar la versión de subclase Subclase privada_Terminate() m_strError = "" End Sub '-----Leer y escribir cada propiedad--------------------- Propiedad pública Obtener ID Identificación = m_intId Propiedad final Propiedad pública Let Id(intId) m_intId = intId Propiedad final Propiedad pública Obtener nombre Nombre = m_strNombre Propiedad final Propiedad pública Let Name(strName) m_strName = strName Propiedad final Propiedad pública Obtener Nick Nick = m_strNick Propiedad final Propiedad pública Let Nick(strNick) m_strNick = strNick Propiedad final Propiedad pública Ponte móvil Móvil = m_strMóvil Propiedad final Propiedad pública Let Mobile(strMobile) m_strMóvil = strMóvil Propiedad Final Propiedad Pública Obtener Tel Teléfono = m_strTel Propiedad final Propiedad pública Let Tel(strTel) m_strTel = strTel Propiedad final Propiedad pública Obtener correo electrónico Correo electrónico = m_strCorreo electrónico Propiedad final Propiedad pública Permitir correo electrónico (strEmail) m_strEmail = strCorreo electrónico Propiedad final Propiedad pública Obtener QQ QQ = m_strQQ Propiedad final Propiedad pública Let QQ(strQQ) m_strQQ = strQQ Propiedad Final Propiedad Pública Obtener Empresa Empresa = m_strEmpresa Propiedad final Propiedad pública Empresa de alquiler (strCompany) m_strCompany = strCompañía Propiedad final '----------------------------------------------- -- 'Obtener información de error Función pública GetLastError() ObtenerLastError = m_strError Función final 'método privado, agregar mensaje de error Sub AddErr privado (strEcho) m_strError = m_strError + "<Div CLASS=""alert"">" & strEcho & "</Div>" End Sub 'Borrar mensaje de error Función pública ClearError() m_strError = "" Función final 'Lee los datos del nodo especificado desde Xml y completa cada atributo 'Necesitas configurar el ID primero Función pública GetInfoFromXml (objXmlDoc) Lista de nodos obj tenue Dim I ClearError si objXmlDoc no es nada, entonces GetInfoFromXml = Falso AddErr "El objeto Dom es nulo" Función de salida Finalizar si CStr(m_intId) = "-1" Entonces GetInfoFromXml = Falso AddErr "El atributo ID del objeto de contacto no se configuró correctamente" Función de salida Demás I = m_intId - 1 'Para leer la posición del nodoEnd If 'Selecciona y lee la información del nodo, asigna cada atributo Set objNodeList = objXmlDoc.getElementsByTagName("Persona") Si objNodeList.length - m_intId >= 0 Entonces En caso de error Continuar siguiente m_strName = objNodeList(I).selectSingleNode("Nombre").Texto m_strNick = objNodeList(I).selectSingleNode("Nick").Texto m_strMobile = objNodeList(I).selectSingleNode("Móvil").Texto m_strTel = objNodeList(I).selectSingleNode("Tel").Texto m_strEmail = objNodeList(I).selectSingleNode("Correo electrónico").Texto m_strQQ = objNodeList(I).selectSingleNode("QQ").Texto m_strCompany = objNodeList(I).selectSingleNode("Empresa").Texto GetInfoFromXml = Verdadero Demás GetInfoFromXml = Falso AddErr "Se produjo un error al recuperar la información de contacto" Establecer objNodeList = Nada Función de salida Terminar si Establecer objNodeList = Nada Función final 'Agregar información al archivo XML 'Necesitas configurar los atributos que se completarán primero Función pública AddToXml (objXmlDoc) Dim objPerson, objNode ClearError Si objXmlDoc no es nada, entonces AddToXml = Falso AddErr "El objeto Dom es nulo" Función de salida End If ' Crear nodo Persona Establecer objPerson = objXmlDoc.createElement("Persona") objXmlDoc.documentElement.appendChild objPerson 'Crear cada nodo secundario'-------------------------------------- --- --------------- Establecer objNode = objXmlDoc.createElement("Nombre") objNode.Text = m_strName objPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Nick") objNode.Text = m_strNick objPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Móvil") objNode.Text = m_strMobile objPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Tel") objNode.Text = m_strTel objPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Correo electrónico") objNode.Text = m_strEmail objPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("QQ") objNode.Text = m_strQQ objPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Empresa") objNode.Text = m_strCompany objPerson.appendChild objNode '------------------------------------------------ - --- Establecer objNode = Nada Establecer objPerson = Nada en caso de error Reanudar siguiente objXmlDoc.save Server.MapPath(C_XMLFILE) 'Guardar archivo XMLSi Err.Number = 0 Entonces AddToXml = Verdadero Demás AddToXml = Falso AddErr Err.Descripción Terminar si Función final 'Eliminar datos del archivo XML 'Necesitas configurar el ID primero Función pública DeleteFromXml (objXmlDoc) Dim objNodeList, objNode ClearError Si objXmlDoc no es nada, entonces EliminarDeXml = Falso AddErr "El objeto Dom es nulo" Función de salida Finalizar si CStr(m_intId) = "-1" Entonces EliminarDeXml = Falso AddErr "El atributo ID del objeto de contacto no se configuró correctamente" Función de salida Finalizar si se establece objNodeList = objXmlDoc.getElementsByTagName("Persona") Si objNodeList.length - m_intId < 0 Entonces EliminarDeXml = Falso AddErr "No se encontró el contacto correspondiente" Establecer objNodeList = Nada Función de salida Finalizar si hay error Reanudar siguiente Establecer objNode = objXmlDoc.documentElement.removeChild(objNodeList(intId-1)) Si objNode no es nada, entonces EliminarDeXml = Falso AddErr "Error al eliminar el contacto" Establecer objNodeList = Nada Función de salida Demás objXmlDoc.save Server.MapPath(C_XMLFILE) Terminar si Establecer objNode = Nada Establecer objNodeList = Nada si Err.Number = 0 Entonces EliminarDeXml = Verdadero Demás EliminarDeXml = Falso AddErr Err.Descripción Terminar si Función final 'Modificar datos en un archivo XML 'Necesitas configurar el ID primero Función pública EditToXml (objXmlDoc) Dim objPersonList, objOldPerson, objNewPerson, objNode ClearError Si objXmlDoc no es nada, entonces EditToXml = Falso AddErr "El objeto Dom es nulo" Función de salida Finalizar si CStr(m_intId) = "-1" Entonces EditToXml = Falso AddErr "El atributo ID del objeto de contacto no se configuró correctamente" Función de salida Finalizar si se establece objPersonList = objXmlDoc.getElementsByTagName("Persona") Si objPersonList.length - m_intId < 0 Entonces EliminarDeXml = Falso AddErr "No se encontró el contacto correspondiente" Establecer objPersonList = Nada Función de salida End If Set objOldPerson = objPersonList(m_intId-1) ' El nodo antiguo que se va a modificar Set objNewPerson = objXmlDoc.createElement("Person") ' El nuevo nodo utilizado para reemplazar el nodo antiguo Set objNode = objXmlDoc.createElement("Name") objNode.Text = m_strName objNewPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Nick") objNode.Text = m_strNick objNewPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Móvil") objNode.Text = m_strMobile objNewPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Tel") objNode.Text = m_strTel objNewPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Correo electrónico") objNode.Text = m_strEmail objNewPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("QQ") objNode.Text = m_strQQ objNewPerson.appendChild objNode Establecer objNode = objXmlDoc.createElement("Empresa") objNode.Text = m_strCompany objNewPerson.appendChild objNode en caso de error Reanudar siguiente 'Reemplazar conjunto objNode = objXmlDoc.documentElement.replaceChild(objNewPerson, objOldPerson) Si objNode no es nada, entonces EditToXml = Falso AddErr "Error al modificar el contacto" Establecer objOldPerosn = Nada Establecer objNewPerson = Nada Establecer objPersonList = Nada Función de salida Demás objXmlDoc.save Server.MapPath(C_XMLFILE) Finalizar si se establece objOldPerson = Nada Establecer objNewPerson = Nada Establecer objPersonList = Nada si Err.Number = 0 Entonces EditToXml = Verdadero Demás EditToXml = Falso AddErr Err.Descripción Terminar si
Clase final de función final |