O componente MSXML permite desenvolver aplicações baseadas em XML de alta-performance, com compatibilidade total ao XML padrão.
Neste código será ensinado como fazer a criação e a leitura de um arquivo XML utilizando o componente da Microsoft MSXML2.DOMDocument.4.0.
CRIAR ARQUIVO <% ' Cria uma instância do controle Set MsXml = Server.CreateObject("MSXML2.DOMDocument.4.0") ' Caminho onde o arquivo será salvo str_Arquivo = Server.MapPath("arquivo.xml") ' Verifica se o arquivo existe If MsXml.Load(str_Arquivo) Then Response.Write "O arquivo já existe!" Else ' O método createElement adiciona os elementos Set root = MsXml.createElement("ComponentesASP") MsXml.appendChild(root) ' O método createProcessingInstruction possui 2 argumentos: o TARGET = "xml" e DATA = "version='1.0' encoding='ISO-8859-1'" Set inst = MsXml.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'") MsXml.insertBefore inst, root ' Adiciona um comentário ao documento XML Set com = MsXml.createComment("Documento XML de exemplo") MsXml.insertBefore com, root Set onode = MsXml.createElement("ManipulaçãoXML") ' ***************************************************** ' * Adiciona um ítem ao documento ' ***************************************************** MsXml.documentElement.appendChild(onode) Set inode = MsXml.createElement("item") onode.appendChild(inode) Set child = MsXml.createElement("nome") child.Text = "MSXML - Microsoft" inode.appendChild(child) Set child = MsXml.createElement("versão") child.Text = "2.0 / 2.6 / 3.0 / 4.0" inode.appendChild(child) Set child = MsXml.createElement("fabricante") child.Text = "https://www.microsoft.com/" inode.appendChild(child) ' ***************************************************** ' ***************************************************** ' * Adiciona um ítem ao documento ' ***************************************************** MsXml.documentElement.appendChild(onode) Set inode = MsXml.createElement("item") onode.appendChild(inode) Set child = MsXml.createElement("nome") child.Text = "ASP XML Parser - Chilkat Software" inode.appendChild(child) Set child = MsXml.createElement("versão") child.Text = "2.2.1" inode.appendChild(child) Set child = MsXml.createElement("fabricante") child.Text = "https://www.chilkatsoft.com/" inode.appendChild(child) ' ***************************************************** ' Salva o arquivo no caminho especificado MsXml.save(str_Arquivo) ' Tira os objetos da memória Set child = Nothing Set inode = Nothing Set onode = Nothing Set com = Nothing Set inst = Nothing Set root = Nothing Response.Write "Arquivo XML criado com sucesso!" End If ' Tira o objeto da memória Set MsXml = Nothing %> LER ARQUIVO <% ' Cria uma instância do controle Set MsXml = Server.CreateObject("MSXML2.DOMDocument.4.0") ' Indicamos que o download em segundo plano não é permitido MsXml.async = False ' Carrega o documento XML MsXml.load( Server.MapPath("arquivo.xml") ) ' O método parseError contém informações sobre o último erro ocorrido If MsXml.parseError <> 0 Then Response.Write "Código do erro: "& MsXml.parseError.ErrorCode &"
" Response.Write "Posição no arquivo: "& MsXml.parseError.FilePos &"
" Response.Write "Linha: "& MsXml.parseError.Line &"
" Response.Write "Posição na linha: "& MsXml.parseError.LinePos &"
" Response.Write "Descrição: "& MsXml.parseError.Reason &"
" Response.Write "Texto que causa o erro: "& MsXml.parseError.srcText &"
" Response.Write "Arquivo com problemas: " & MsXml.parseError.URL Else ' A propriedade documentElement refere-se à raiz do documento Set raiz = MsXml.documentElement 'Looping para percorrer todos os elementos filhos For i = 0 To raiz.childNodes.length -1 ' A propriedade NodeName contém o nome do elemento e a propriedade childNodes contém a lista de elementos filhos Response.Write raiz.NodeName & "
" Response.Write raiz.childNodes.item(i).childNodes.item(0).text & "
" Response.Write raiz.childNodes.item(i).childNodes.item(1).text & "
" Next End If ' Tira o objeto da memória Set MsXml = Nothing %>