Um código de operação xmldom para facilitar o código que precisa ser combinado com xml <script language=vbscript runat=server>
'================================================ ============
'Autor: Seja você mesmo
'Tempo: 15/03/2005
================================================= ==========
Classe XMLClass
ObjXml privado
XMLDoc privado
XMLPath privado
'//=============================================== = =============
'<!--Eventos durante inicialização e logout da classe-->
Subclasse_initialize
Definir objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = verdadeiro
objXml.async = falso
Finalizar sub
SubClass_Terminate
Definir objXml = Nada
Finalizar sub
'//=============================================== = =============
'<!--Crie um novo documento XML-->
Função pública CreateNew(sName)
Definir tmpNode = objXml.createElement(sName)
objXml.appendChild(tmpNode)
Definir CriarNovo = tmpNode
Função final
'<!--Lê o documento XML de fora -->
Função Pública OpenXml(sPath)
OpenXml=Falso
sPath=Servidor.MapPath(sPath)
'Resposta.Write(sPath)
xmlPath = sPath
Se objXml.load(sPath) Então
Definir xmlDoc = objXml.documentElement
OpenXml = Verdadeiro
Terminar se
Função final
'<!--Lê a string XML de fora -->
Sub LoadXml público (sStr)
objXml.loadXML(sStr)
Definir xmlDoc = objXml.documentElement
Finalizar sub
SubInceptXml público (xObj)
Definir objXml = xObj
Definir xmlDoc = xObj.documentElement
Finalizar sub
'//=============================================== = =============
'<!--Adicionar um novo nó-->
Função pública AddNode(sNode,rNode)
' sNode STRING nome do nó
'rNode OBJECT adiciona a referência de nó superior do nó
'================================================ =============
DimTmpNode
Definir TmpNode = objXml.createElement(sNode)
rNode.appendChild TmpNode
Definir AddNode = TmpNode
Função final
'<!--Adicionar um novo atributo-->
Função pública AddAttribute(sName,sValue,oNode)
' sName STRING nome do atributo
' sValue Valor do atributo STRING
'objeto oNode OBJECT com atributos adicionados
'================================================ =============
oNode.setAttribute sName,sValue
Função final
'<!--Adicionar conteúdo do nó-->
Função pública AddText(FStr,cdBool,oNode)
Dim tmpText
Se cdBool então
Definir tmpText = objXml.createCDataSection(FStr)
Outro
Definir tmpText = objXml.createTextNode(FStr)
Terminar se
oNode.appendChild tmpText
Função final
'================================================ ================================================= = =====
'<!--Obtém o valor do atributo especificado do nó-->
Função pública GetAtt(aName,oNode)
' aName STRING nome do atributo
' referência do nó oNode OBJECT
'================================================ =============
dim tmpValor
tmpValue = oNode.getAttribute(aName)
GetAtt = tmpValor
Função final
'<!--Obter o nome do nó-->
Função pública GetNodeName(oNode)
' referência do nó oNode OBJECT
GetNodeName = oNode.nodeName
Função final
'<!--Obter conteúdo do nó-->
Função Pública GetNodeText(oNode)
' referência do nó oNode OBJECT
GetNodeText = oNode.childNodes(0).nodeValue
Função final
'<!--Obter tipo de nó-->
Função Pública GetNodeType(oNode)
' referência do nó oNode OBJECT
GetNodeType = oNode.nodeValue
Função final
'<!--Encontre todos os nós com o mesmo nome de nó-->
Função pública FindNodes(sNode)
Escurecer tmpNodes
Definir tmpNodes = objXml.getElementsByTagName(sNode)
Definir FindNodes = tmpNodes
Função final
'<!--Verifique se há um nó idêntico-->
Função pública FindNode(sNode)
DimTmpNode
Definir TmpNode=objXml.selectSingleNode(sNode)
Definir FindNode = TmpNode
Função final
'<!--Excluir um nó-->
Função Pública DelNode(sNode)
Dim TmpNodes,Nodesss
Definir TmpNodes=objXml.selectSingleNode(sNode)
Definir Nodesss=TmpNodes.parentNode
Nodesss.removeChild(TmpNodes)
Função final
'<!--Substituir um nó-->
Função pública ReplaceNode(sNode,sText,cdBool)
'substituir Filho
Dim TmpNodes,tmpText
Definir TmpNodes=objXml.selectSingleNode(sNode)
'AddText sText,cdBool,TmpNodes
Se cdBool então
Definir tmpText = objXml.createCDataSection(sText)
Outro
Definir tmpText = objXml.createTextNode(sText)
Terminar se
TmpNodes.replaceChild tmpText,TmpNodes.firstChild
Função final
Instrução de Processamento de Função Privada
'//--Criar declaração XML
Dim objPi
Definir objPi = objXML.createProcessingInstruction(xml, version=&chr(34)&1.0&chr(34)& encoding=&chr(34)&gb2312&chr(34))
'//--Anexar vida xml ao documento xml
objXML.insertAntes de objPi, objXML.childNodes(0)
Função final
'//=============================================== ==============================
'<!--Salvar documento XML-->
Função pública SaveXML()
'Instrução de Processamento()
objXml.save(xmlPath)
Função final
'<!--Salvar documento XML-->
Função pública SaveAsXML(sPath)
Instrução de Processamento()
objXml.save(sPath)
Função final
'//=============================================== ===================================
'Estatísticas relacionadas
'<!--Obter o nó raiz-->
Propriedade obter raiz
Definir raiz = xmlDoc
Propriedade final
'<!--Obtém o número de nós filhos no nó raiz-->
Comprimento de obtenção de propriedade
Comprimento = xmlDoc.childNodes.length
Propriedade final
'//=============================================== ===================================
'Testes relacionados
Propriedade GetTestNode
TestNode = xmlDoc.childNodes(0).texto
Propriedade final
Fim da aula
</script>