XML

<< Click to Display Table of Contents >>

Navigation:  Outros >

XML

Previous pageReturn to chapter overviewNext page

Aqui temos o seguinte arquivo XML:

 

<?xml version="1.0" standalone="yes"?>

<DocumentElement>

  <tabela>

    <nome>Daniel</nome>

    <obs>Gambi</obs>

  </tabela>

  <tabela>

    <nome>Xunior</nome>

    <obs>Matcho</obs>

  </tabela>

  <tabela>

    <nome>Oliveira</nome>

    <obs>Cara de bobo</obs>

  </tabela>

</DocumentElement>

 

Vamos ler o arquivo e exibir no console usando 2 linguagens de programação para comparar a complexidade entre elas.

Começamos com o Java que é defendido pelo Xiitas da programação como a melhor que existe:

 

Java

 

import java.io.File;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

 

public class Ler {

  

    public static void main(String[] args) {

 

    try {

      File file = new File("c:\\tabela.xml");

 

      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

      DocumentBuilder db = dbf.newDocumentBuilder();

      Document doc = db.parse(file);

      doc.getDocumentElement().normalize();

 

      NodeList nodeLst = doc.getElementsByTagName("tabela");

 

      for (int s = 0; s < nodeLst.getLength(); s++) {

 

        Node fstNode = nodeLst.item(s);

 

        if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

           Element fstElmnt = (Element) fstNode;

 

           NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("nome");

           Element fstNmElmnt = (Element) fstNmElmntLst.item(0);

           NodeList fstNm = fstNmElmnt.getChildNodes();

           System.out.println("Nome: "  + ((Node) fstNm.item(0)).getNodeValue());

 

           NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("obs");

           Element lstNmElmnt = (Element) lstNmElmntLst.item(0);

           NodeList lstNm = lstNmElmnt.getChildNodes();

          System.out.println("Obs: " + ((Node) lstNm.item(0)).getNodeValue());

        }

 

      }

    } catch (Exception e) {

    e.printStackTrace();

    }

  }

}

 

 

C#

 

using System;

using System.Data;

 

class Ler

{

   static void Main(string[] args)

   {

        DataTable dts = new DataTable("tabela");

        dts.Columns.Add("nome");

        dts.Columns.Add("obs");

        DataRow linha;

 

        dts.ReadXml(@"c:\tabela.xml");

 

        for (int i = 0; i < dts.Rows.Count; i++)

        {

            linha = dts.Rows[i];

            Console.WriteLine("Nome:" + dts.Columns["nome"].ToString());

            Console.WriteLine("Obs:" + dts.Columns["obs"].ToString());

        }

        

   }

}

 

Conclusão

 

Use Java, é mais fácil de ficar maluco. Ah, eu mencionei que Java tem 4 classes diferentes para acessar XML? Deixa pra lá...