Remoção de cabecalho XML

5 respostas
S

Pessoal, estou usando a biblioteca w3c dom para gerar um xml, gostaria de saber como faço para remover o cabeçalho xml ()

abaixo meu código, obrigado.

import javax.xml.parsers.*;
import javax.xml.transform.*;
import org.w3c.dom.*;
import java.io.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

public class TesteXML {

	public static void main(String[] args) {
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document document = builder.newDocument();
            document.setXmlVersion("1.0");
			Node raiz = document.createElement("raiz");
			Node no1 = document.createElement("teste1");
			Node no2 = document.createTextNode("Texto");
			no1.appendChild(no2);
			raiz.appendChild(no1);
			document.appendChild(raiz);

			TransformerFactory transFactory = TransformerFactory.newInstance();
			Transformer transformer = transFactory.newTransformer();
			DOMSource source = new DOMSource(document);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
			StreamResult result = new StreamResult(baos);
			transformer.transform(source, result);
			System.out.println(baos.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

5 Respostas

T

Por que é que você precisa remover esse cabeçalho?

S

pois estou trabalhando na integração de um sistema (que não é meu e não posso alterar) e ele não aceita isso.

T

Que lindo - provavelmente o outro sistema não aceita XMLs de verdade, só arquivos em formato fixo que se parecem com XML.
De qualquer maneira, tente isto:

import javax.xml.parsers.*;
import javax.xml.transform.*;
import org.w3c.dom.*;
import java.io.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import java.util.*;


public class TesteXML {

	public static void main(String[] args) {
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document document = builder.newDocument();
			document.setXmlVersion("1.0");

			Node raiz = document.createElement("raiz");
			Node no1 = document.createElement("teste1");
			Node no2 = document.createTextNode("Texto");
			no1.appendChild(no2);
			raiz.appendChild(no1);
			document.appendChild(raiz);
			
			TransformerFactory transFactory = TransformerFactory.newInstance();
			Transformer transformer = transFactory.newTransformer();
			Properties prop = transformer.getOutputProperties();
			prop.put (OutputKeys.OMIT_XML_DECLARATION, "yes");
			transformer.setOutputProperties (prop);
			DOMSource source = new DOMSource(document);
            FileOutputStream fos = new FileOutputStream ("teste.xml");
			StreamResult result = new StreamResult(fos);
			transformer.transform(source, result);
			fos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
cidao

Eu usei o StringWriter.
deu certinho. :smiley:

só você pegar o valor que está dentro de XmlString

import javax.xml.parsers.*;   
import javax.xml.transform.*;   
import org.w3c.dom.*;   
import java.io.*;   
import javax.xml.transform.dom.*;   
import javax.xml.transform.stream.*;   
  
public class TesteXML {   
  
    public static void main(String[] args) {   
        try {   
            DocumentBuilderFactory factory = DocumentBuilderFactory   
                    .newInstance();   
            DocumentBuilder builder = factory.newDocumentBuilder();   
            Document document = builder.newDocument();   
           // document.setXmlVersion("1.0");   
            Node raiz = document.createElement("raiz");   
            Node no1 = document.createElement("teste1");   
            Node no2 = document.createTextNode("Texto");   
            no1.appendChild(no2);   
            raiz.appendChild(no1);   
            document.appendChild(raiz);   
  
            TransformerFactory transFactory = TransformerFactory.newInstance();   
            Transformer transformer = transFactory.newTransformer();   
            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
          
            StringWriter sw = new StringWriter();
            StreamResult result = new StreamResult(sw);
            
            DOMSource source = new DOMSource(document);
            transformer.transform(source, result);
            String xmlString = sw.toString();
            System.out.println("xmlString   "+xmlString);

        } catch (Exception e) {   
            e.printStackTrace();   
        }   
    }   
}
S

uhulll funfooo, valeu brother!!!

Criado 23 de janeiro de 2008
Ultima resposta 23 de jan. de 2008
Respostas 5
Participantes 3