silveta
Janeiro 23, 2008, 11:07am
#1
Pessoal, estou usando a biblioteca w3c dom para gerar um xml, gostaria de saber como faço para remover o cabeçalho xml (<?xml version="1.0" encoding="UTF-8" standalone="no"?>)
abaixo meu código, obrigado.
[code]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();
}
}
}
[/code]
thingol
Janeiro 23, 2008, 11:08am
#2
Por que é que você precisa remover esse cabeçalho?
silveta
Janeiro 23, 2008, 11:10am
#3
pois estou trabalhando na integração de um sistema (que não é meu e não posso alterar) e ele não aceita isso.
thingol
Janeiro 23, 2008, 11:31am
#4
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
Janeiro 23, 2008, 11:44am
#5
Eu usei o StringWriter.
deu certinho.
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();
}
}
}
silveta
Janeiro 23, 2008, 12:43pm
#6
uhulll funfooo, valeu brother!!!