|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Classe para trabalhar com XML
|
 |
|
|
Postada em 5/1/2004 por Bonjour
Olá, desenvolvi uma classe para trabalhar com XML, espero q ajude. Na verdade, a classe serve mais para criar XML, sem ter q ficar dando um monte de comandos...
Class ClsXML Public Root Public XML Private PIs Sub NewXML(TagPai, versao) Set XML = CreateObject ("Msxml2.DOMDocument" & Versao) XML.Async = False Set Root = XML.CreateElement(TagPai) XML.AppendChild(Root) Set PIs = XML.CreateProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'") XML.InsertBefore PIs, Root End Sub
Function Open(Path, versao) Dim Result Set XML = CreateObject ("Msxml2.DOMDocument" & Versao) XML.Async = False Result = XML.Load(Path) if Result = true then Set Root = XML.DocumentElement end if Open = Result End Function
Function CriaNodo(TagPai, Nome, Atributos, ValorAtributos,ValorNodo) Dim Nodo Dim Valor Set Nodo = XML.CreateElement(Nome) If TagPai Is Nothing Then XML.AppendChild(Nodo) Else TagPai.AppendChild(Nodo) End If If Isarray(Atributos) And Isarray(ValorAtributos) Then NumAtributos = Ubound(Atributos) For i = 0 To NumAtributos Call Nodo.setAttribute(Atributos(i), ValorAtributos(i)) Next End If If ValorNodo <> "" Then Set Valor = XML.CreateTextNode(ValorNodo) Nodo.AppendChild(Valor) End If Set CriaNodo = Nodo Set Nodo = Nothing Set Valor = Nothing End Function
Function RemoveNodo(Expressao) Dim Nodo Set Nodo = Xml.GetElementsByTagName(Expressao) if not Nodo is nothing then Call Nodo.RemoveAll RemoveNodo = true else RemoveNodo = false end if End Function
Sub Save (Caminho) Call XML.Save(Caminho) End Sub
End Class
Usando a Classe para criar um XML com a seguinte estrutura:
<teste> <tag1 nome="Teste"> <nome1>Rodrigo</nome1> <ferramenta>Lotus Notes</ferramenta> </tag1> </teste>
Dim NomeAtributos(), ValorAtributos() Set objXML = New ClsXML()
'O primeiro parâmetro é a Tag pai de todas, o segundo é a versão do MSXML q você quer usar Call NewXML("teste", "") Redim NomeAtributos(0), ValorAtributos(0) NomeAtributos(0) = "nome" ValorAtributos(0) = "Teste" Set Tag1 = objXML.CriaNodo(objXML.root, "tag1", NomeAtributos, ValorAtributos, "") Call objXML.CriaNodo(Tag1, "nome1", "", "", "Rodrigo") Call objXML.CriaNodo(Tag1, "ferramenta", "", "", "Lotus Notes")
Call objXML.Save("teste")
|
|
|
|

|