Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Martinelli

Editor XML OnLine em ASP

Recommended Posts

Pessoal,

 

Preciso com urgência de um editor XML Online em ASP. Já ví que tem um POST mas, está em PHP.

 

Se alguém tiver um modelo para eu estudar, ou então conhecer algum tutorial ou site que possa me indicar, ficarei muito grato.

 

Conto com a colaboração.

 

Vlw

Martinelli http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize o componente MSXML.Segue um exemplo;Está em VB, mas basta adaptar.

Sub IncluirXmlParte(ByRef nr_parte As Variant, _                        ByVal KeyRegistro As String, _                        ByVal cd_tipo_parte As Long, _                        ByVal cd_pessoa As Long, _                        ByVal cd_usuario As Long, _                        ByVal dt_cadastro As Date, _                        ByRef varErro As Variant)                                                        On Error GoTo TrataErroCall ControlarContexto(True)Dim ObjXMl As MSXML2.DOMDocument40Set ObjXMl = InstanciarObjeto("Msxml2.DOMDocument.4.0")Dim RegistroCompleto As BooleanDim Sessao As IXMLDOMElementDim tb_parte As IXMLDOMElementDim tb_nr_parte As IXMLDOMElementDim Raiz As IXMLDOMElementDim ONode As IXMLDOMNodeDim a As LongDim Busca As IXMLDOMNodeList'============================================='ABRE ARQUIVO'=============================================Call ObjXMl.Load(App.Path & "/log_cadastro.xml")'============================================='BUSCA SESSÃO CORRETA'=============================================Set Busca = ObjXMl.getElementsByTagName(KeyRegistro)'============================================='SE NÃO EXISTIR RETORNA ERRO'=============================================If Busca.length = 0 Then    Err.Raise 1, "IncluirXMLParte", "Chave de registro não encontrada!"End If'============================================='SET SESSÃO'=============================================Set Sessao = Busca.Item(0)'============================================='BUSCA ELEMENTO TB_PARTE'=============================================Set Busca = Sessao.getElementsByTagName("tb_parte")'============================================='SE NÃO EXISTIR CRIA, CASO CONTRÁRIO PEGA O ELEMENTO CORRETO'=============================================If Busca.length = 0 Then    Set tb_parte = ObjXMl.createElement("tb_parte")    Call Sessao.appendChild(tb_parte)    Else    Set tb_parte = Busca.Item(0)End If'============================================='CRIA CÓDIGO DE REGISTRO DA PARTE'=============================================nr_parte = "cd_parte_cd_tipo_parte_" & cd_tipo_parte & "_cd_pessoa_" & cd_pessoa'============================================='BUSCA CÓDIGO DE REGISTRO DA PARTE'=============================================Set Busca = tb_parte.getElementsByTagName(nr_parte)'============================================='SE NÃO EXISTIR O CÓDIGO, CRIA-SE UM NOVO'CASO CONTRÁRIO RETORNA ERRO'=============================================If Busca.length = 0 Then    Set tb_nr_parte = ObjXMl.createElement(nr_parte)    Else    Err.Raise 1, "IncluirXmlParte", "Não é possível incluir a mesma pessoa com o mesmo tipo!"End If                '=============================================            'CRIA-SE OS NÓS DO ELEMENTO TB_PARTE            '=============================================            Call CriarNode(tb_nr_parte, "cd_tipo_parte", cd_tipo_parte, varErro)            Call CriarNode(tb_nr_parte, "cd_pessoa", cd_pessoa, varErro)            Call CriarNode(tb_nr_parte, "cd_usuario", cd_usuario, varErro)            Call CriarNode(tb_nr_parte, "dt_cadastro", dt_cadastro, varErro)              '============================================='ADICIONA O NOVO NÓ À SESSÃO TB_PARTE'=============================================Call tb_parte.appendChild(tb_nr_parte)'============================================='SALVA O ARQUIVO'=============================================Call ObjXMl.Save(App.Path & "/log_cadastro.xml")'============================================='DESTROI OS OBJETOS'=============================================Set ObjXMl = NothingTrataErro:    Call VerificaErro(varErro)                                                                                    End Sub

A Função CriarNode, é a que segue

Private Sub CriarNode(ByRef ElementoRaiz As IXMLDOMElement, ByRef NomeElemento As String, ByVal ValorElemento As Variant, ByRef varErro As Variant)On Error GoTo TrataErroCall ControlarContexto(True)Dim ObjXMl As New MSXML2.DOMDocument40Dim NovoElemento As IXMLDOMElementSet NovoElemento = ObjXMl.createNode(1, NomeElemento, "")NovoElemento.setAttribute "data_type", TypeName(ValorElemento)NovoElemento.Text = ValorElementoCall ElementoRaiz.appendChild(NovoElemento)TrataErro:    If Err <> 0 Then    varErro(0) = True    varErro(1) = Err.Number    varErro(2) = Err.Source    varErro(3) = Err.Description    End IfEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.