馃敟 Articles, eBooks, Jobs, Columnist, Forum, Podcasts, Courses 馃帗



Como criar facilmente arquivos XML via código

Descrição do artigo publicado no aspneti.com, cada artigo com seu resumo

Ol谩 amigos,

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 XmlWriterSettings

settings.Indent = True

settings.IndentChars = " "

settings.NewLineOnAttributes = False

settings.OmitXmlDeclaration = False


Agora criamos um StringBuilder e um XMLWriter:

Dim sb As New StringBuilder

Dim 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 With

tw.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 = "text/xml"

Response.Write(sb.ToString)

Response.End()

O resultado 茅 o seguinte:

 

- <produtos>
- <produto id="1">
  <descricao>Papel sulfite</descricao>
  <categoria>Papeis</categoria>
  <preco>199.99</preco>
  <unidade>pct</unidade>
  <quantidade>1</quantidade>
- <estoque>
  <unidade>pct</unidade>
  <loja nome="matriz">10</loja>
  <almoxarifado>18</almoxarifado>
  </estoque>
  </produto>
- <produto id="2">
  <descricao>Etiqueta adesiv</descricao>
  <categoria>Etiquetas</categoria>
  <preco>19.99</preco>
  <unidade>pct</unidade>
  <quantidade>1</quantidade>
- <estoque>
  <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)

 
pronto, o restante do c贸digo 茅 exatamente igual.
Espero que voces tenham aproveitado bastante.
at茅 a pr贸xima

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




Top