Galera uma dúvida simples. Tenho um servlet qualquer que processa algumas informações e o retorno tem que ser um xml.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
(...Faz um processamento qualquer...)
String nome = request.getParameter("nome");
int orgao = Integer.parseInt(request.getParameter("orgao"));
String matricula = request.getParameter("matricula");
PrintWriter out = response.getWriter();
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
//Aqui começa a questão! Como eu monto o xml?
out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE> Teste</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("Nome:" + servidor.getNome_servidor());
out.println("<BR>");
out.println("Data: " + hoje);
out.println("</BODY>");
out.println("</HTML>");
}
Dessa forma me retorna um xml dessa forma
- <HTML>
- <HEAD>
<TITLE>Teste</TITLE>
</HEAD>
<BODY>Nome:FULANO DA SILVA Data: Tue Dec 29 09:54:22 GMT-03:00 2009</BODY>
</HTML>
Como eu monto esse xml corretamente?
Aquilante eu não entendi sua duvida, com assim corretamente? O que você quer fazer? Por favor seja mais detalhista. 
E aí aquilante !
A sintaxe de montagem do xml através do servlet está correta, a dúvida é, por que vc está usando um xml com tags de html? como vc pretende usar isso?
Abraço!
Emerson Rodrigo Costa
Pois galera a dúvida era na montagem mesmo, mas ja resolvi.
Ficou assim:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// Cria uma coleção
Object[] listaServidor = null;
// Cria um Objeto do tipo servidor
Servidor servidor = null;
// Cria
FacadeService ws = new FacadeServiceLocator();
Facade servico;
String nome = request.getParameter("nome");
try {
servico = ws.getwsSSPDS();
if (nome != null)
listaServidor = servico.getServidor(nome);
} catch (ServiceException e) {
System.out.println(e.getClass().getName() + ":" + e.getMessage());
} catch (RemoteException e) {
System.out.println(e.getClass().getName() + ":" + e.getMessage());
}
StringBuffer xml = new StringBuffer(
"<?xml version='1.0' encoding='ISO-8859-1'?>");
if (listaServidor.length > 0) {
xml.append("<servidores>");
for (int i = 0; i < listaServidor.length; i++) {
servidor = (Servidor) listaServidor[i];
xml.append("<servidor>");
xml.append("<nome>");
xml.append(servidor.getNome_servidor());
xml.append("</nome>");
xml.append("<matricula>");
xml.append(servidor.getMatricula());
xml.append("</matricula>");
}
xml.append("</servidores>");
}
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write(xml.toString());
}
Esse servlet vai em um Webservice traz os dados e retorna um xml.
Vlw!
Desculpe-me se eu estiver errado. Mas, não ficou faltando fechar a tag no fim da passagem do for?
xml.append("<servidores>");
for (int i = 0; i < listaServidor.length; i++) {
servidor = (Servidor) listaServidor[i];
//abriu aqui
xml.append("<servidor>");
xml.append("<nome>");
xml.append(servidor.getNome_servidor());
xml.append("</nome>");
xml.append("<matricula>");
xml.append(servidor.getMatricula());
xml.append("</matricula>");
//aqui não faltou um xml.append("</servidor>"); ?
}
xml.append("</servidores>");
É que eu estou vendo mais sobre xml agora. Vendo seu código surgiu essa dúvida. Desculpe-me se estiver errado.