🔥 Articles, eBooks, Jobs, Columnist, Forum, Podcasts, Courses 🎓

Como criar facilmente arquivos XML via código | ecode10.com


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





Related articles




Membership $2.99/mo
✓ Full articles Subscribe
✓ Write forums
✓ Access podcast
✓ Full jobs opportunities
✓ Access eBooks
✓ Access magazine
✓ Access videos
Free
✓ Open articles
✓ Read forums
✓ Access podcast
x Full jobs opportunities
x Access eBooks
x Access magazine
x Access videos
Top