Como criar facilmente arquivos XML via código
Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo
andei meio sumido, pois estou muito atarefado com novos projetos e novas ferramentas, e n茫o tive oportunidade de escrever o artigo da semana passada, mas estamos de volta. Essa semana quero mostrar como gerar um XML de uma forma bem simples, e gravar o resultado em um arquivo, ou mostrar no pr贸prio browser.
O c贸digo abaixo foi feito em .NET 2.0
Pra come莽ar, vamos criar um XmlWriterSettings para configurar nosso XML:
Dim settings As New XmlWriterSettingssettings.Indent = Truesettings.IndentChars = " "settings.NewLineOnAttributes = Falsesettings.OmitXmlDeclaration = False |
Agora criamos um StringBuilder e um XMLWriter:
Dim sb As New StringBuilderDim tw As XmlWriter = XmlWriter.Create(sb, settings) |
Em seguida, vamos gravar os dados:
With tw.WriteStartDocument() .WriteStartElement( "produtos").WriteStartElement( "produto").WriteAttributeString( "id", "1").WriteElementString( "descricao", "Papel sulfite").WriteElementString( "categoria", "Papeis").WriteElementString( "preco", "199.99").WriteElementString( "unidade", "pct").WriteElementString( "quantidade", "1").WriteStartElement( "estoque").WriteElementString( "unidade", "pct").WriteStartElement( "loja").WriteAttributeString( "nome", "matriz").WriteString( "10").WriteEndElement() 'loja.WriteElementString( "almoxarifado", "18").WriteEndElement() 'estoque.WriteEndElement() 'produto.WriteStartElement( "produto").WriteAttributeString( "id", "2").WriteElementString( "descricao", "Etiqueta adesiv").WriteElementString( "categoria", "Etiquetas").WriteElementString( "preco", "19.99").WriteElementString( "unidade", "pct").WriteElementString( "quantidade", "1").WriteStartElement( "estoque").WriteElementString( "unidade", "pct").WriteStartElement( "loja").WriteAttributeString( "nome", "filial 1").WriteString( "0").WriteEndElement() 'loja.WriteElementString( "almoxarifado", "5").WriteEndElement() 'estoque.WriteEndElement() 'produto.WriteEndElement() 'produtos.WriteEndDocument() End Withtw.Flush() tw.Close() |
por fim, vamos retornar o conte煤do desse xml no browser, para isso, basta mudar o contentType da p谩gina para text/xml:
Response.ContentType = Response.Write(sb.ToString) Response.End()
O resultado 茅 o seguinte:
<descricao>Papel sulfite</descricao> <categoria>Papeis</categoria> <preco>199.99</preco> <unidade>pct</unidade> <quantidade>1</quantidade> <unidade>pct</unidade> <loja nome="matriz">10</loja> <almoxarifado>18</almoxarifado> </estoque> </produto> <descricao>Etiqueta adesiv</descricao> <categoria>Etiquetas</categoria> <preco>19.99</preco> <unidade>pct</unidade> <quantidade>1</quantidade> <unidade>pct</unidade> <loja nome="filial 1">0</loja> <almoxarifado>5</almoxarifado> </estoque> </produto> </produtos> |
Bem, agora para salvar esse XML num arquivo 茅 muito f谩cil, basta alterar o inicio do nosso c贸digo, no lugar de colocar o StringBuilder como saida pro XML 茅 s贸 colocar o path do arquivo, se ele n茫o existir, ser谩 criado um novo:
Dim tw As XmlWriter = XmlWriter.Create(MapPath("~/") & "arquivo.xml", settings) |
Subscribe ecode10.com
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
You can cancel anytime.
Log In
Related articles
Verificar se um Form está aberto (VB.NET)
Neste artigo, explicarei como verificar se um form já foi aberto em Windows Forms (VB.NET)
Como criar um CompositeControl, TextBox com Validador
Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo
O que é Design Patterns?
Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo