Ajuda com Java e XML

Bom pessoal,

O problema é o seguinte: Eu recebo informações que um usuário digita nos campos (JTextField) de uma aplicação que eu fiz.
Tenho que passar essas informações para um outtro programa também feito em Java para que esse envie para um banco de dados. Só que eu não posso passar os dados na forma como eu pego, ou seja, String e int. Devo passar esses valores para um documento XML, enviar o documento. Assim, quando o outro programa receber o documento ele vai ler, pegar essas informações e inserir no banco.

Será que alguém pode me ajudar? Pegeui uns livros, já cansei de pesquisar na net, mas não acho nada parecido com o q estou precisando. Quando acho está muito abstrato…

Valew!

//neste codigo pego valres de outros lugares e insiro no arquivo xml que //vou criar, acho q é isto q vc esta precisado
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.FileWriter;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**

  • @Marcelo Z
    */
    public class TesteMontarXML{

    static Document doc;

    public static void main(String[] args) {

    try{
            //pego valroes de outro  lugar e converto para String para por no arquivo xml que vou gerar abaixo
                    String sentPacktes = Integer.toString(finalSentCont); 
                    String sentBytes = Integer.toString(finalSentBytes); 
                    int pr = (int)(Math.random()* 50 );
                    String pridValor = Integer.toString(pr);
                    try{
                        
                     //gera o Document 
                             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                             DocumentBuilder builder = factory.newDocumentBuilder();
                             doc = builder.newDocument();
    
                         //adiciona os elementos e atributos		
                             Element relatorio = doc.createElement("relatorio");
                             Element prid = doc.createElement("Prid");
                             prid.setAttribute("id", pridValor);
                             Element id = doc.createElement("Id");
                             id.setAttribute("type", "6");
                             id.appendChild(doc.createTextNode(pridValor));
                             prid.appendChild(id);
                             
                             Element refId = doc.createElement("RefID");
                             refId.setAttribute("type", "6");
                             refId.appendChild(doc.createTextNode(this.pridRef));
                             prid.appendChild(refId);
                             
                             Element pktCont = doc.createElement("PacketCount");
                             pktCont.setAttribute("type", "1");
                             pktCont.appendChild(doc.createTextNode(sentPacktes));
                             prid.appendChild(pktCont);
                             
                             Element byCont = doc.createElement("ByteCount");
                             byCont.setAttribute("type", "1");
                             byCont.appendChild(doc.createTextNode(sentBytes));
                             prid.appendChild(byCont);
                             
                             relatorio.appendChild(prid);
                             doc.appendChild(relatorio);
    

//Realiza a saida do XML para o arquivo
Transformer trans = TransformerFactory.newInstance().newTransformer();
trans.setOutputProperty(OutputKeys.INDENT, “yes”);
trans.transform(new DOMSource(doc), new StreamResult(new FileWriter(new File(“c:/teste.xml”)))); // vai gerar um arquivo chamado teste.xml na raiz do drive C: do Windows.

   //System.exit(0);

   }catch(Exception ex){
      ex.printStackTrace();
   }   
}

}

Cara, valeu mesmo!!

Vou dar uma conferida no seu código. Se você tiver o que traduz agora o XML fico ainda mais grato!!

Valew!

este pedaço de codigo pode te ajudar a enteder como coletar os dados do arqvo xml
import java.util.Vector;
import javax.xml.parsers.;
import javax.xml.transform.
;
import org.w3c.dom.;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.xpath.
;
import java.io.*;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Coverter
{ private String filepath;
private DocumentBuilderFactory dbf;
private DocumentBuilder db;
private Document docResult;

// aki quando vc chamar o contrutor converter, passe o caminho(path onde esta o arquivo q vc quer ler
//por exemplo "C:/teste.xml
public Coverter(String path)
{ this.filepath = path;
try
{
dbf = DocumentBuilderFactory.newInstance();
db = dbf.newDocumentBuilder();

       docResult = db.parse(this.filepath);
    }
    catch(Exception e)
    {
        e.printStackTrace();
        System.err.println("Um erro ocorreu ao abrir o arquivo de leitura");
        System.exit(-1);
    }
    //chama o metodo que vai ler o arquivo
    LeArq(docResult);
}
public void LeArq(Document doc)
{  
    Element edp = (Element) doc.getElementsByTagName("dsDataPath").item(0);
    NodeList edpchildren = edp.getChildNodes();

    NodeList ifRole,prc= null;
    Element dpPrid;
    String next;
    String especifico, result;

    //variaveis q vao receber os valores do arquivo xml q vc esta lendo
    String role, capSetName, direction;
    
    for (int i=0;i<edpchildren.getLength();i++)
    {
        if((edpchildren.item(i)!=null)&&(edpchildren.item(i).getNodeName().compareToIgnoreCase("#text")!=0))
        {
            dpPrid = (Element) edpchildren.item(i);
            //a variavel role recebe o valor que tem na tag com o nome dsDataPathRoles o mesmo para os abaixo
            role = dpPrid.getElementsByTagName("dsDataPathRoles").item(0).getFirstChild().getNodeValue();
            capSetName = dpPrid.getElementsByTagName("dsDataPathCapSetName").item(0).getFirstChild().getNodeValue();
            direction = dpPrid.getElementsByTagName("dsDataPathIfDirection").item(0).getFirstChild().getNodeValue();
            next = dpPrid.getElementsByTagName("dsDataPathStart").item(0).getFirstChild().getNodeValue
            // basicamente o  procedimento é este, vai ter q fazer varios for para ler todo o arquivo

// para acahr uma tag em especial que vc queira provavelmente vai ter de usar XPath que indica o caminho onde esta a tag
//por exmplo a expressao xpath://pessoa/idade/[text()=‘23’] seleciona todos os nós pessoa que tem um nó filho idade com texto 23

   }

}
}

}

este tutorial pode e ajudar a enteder mais sobre xml e java
http://www.inf.ufrgs.br/procpar/disc/inf01008/trabalhos/sem01-1/t2/apis_xml_java/#DOMLocaliz

Valeu cara… Obrigado mesmo pela ajuda!