使用PrintWriter在Javaservlet上输出XML

使用PrintWriter在Javaservlet上输出XML,java,xml,eclipse,servlets,Java,Xml,Eclipse,Servlets,我曾经将ArrayList转换为XML。我的代码正在成功地将XML输出到Eclipse控制台 下面是我的代码片段 DocumentBuilderFactory dFact = DocumentBuilderFactory.newInstance(); DocumentBuilder build = dFact.newDocumentBuilder(); Document doc = build.newDocument(); Element root = doc.createElement("P

我曾经将ArrayList转换为XML。我的代码正在成功地将XML输出到Eclipse控制台

下面是我的代码片段

DocumentBuilderFactory dFact = DocumentBuilderFactory.newInstance();
DocumentBuilder build = dFact.newDocumentBuilder();
Document doc = build.newDocument();

Element root = doc.createElement("Properties");
doc.appendChild(root);

for(House house : house) {

    Element Details = doc.createElement("house");
    root.appendChild(Details);

    Element location = doc.createElement("location");
    location.appendChild(doc.createTextNode(house.getLocation()));
    Details.appendChild(location);

    ...

}

 // Save the document to the disk file
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();

// format the XML nicely
aTransformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");

aTransformer.setOutputProperty(
        "{http://xml.apache.org/xslt}indent-amount", "4");
aTransformer.setOutputProperty(OutputKeys.INDENT, "yes");

DOMSource source = new DOMSource(doc);
StreamResult result =  new StreamResult(System.out);
aTransformer.transform(source, result); 
我不想将此XML输出到Eclipse控制台,而是想在servlet上打印出XML

我使用以下代码对jsonObject做了类似的操作:

PrintWriter out = resp.getWriter();
...
out.print(jsonObject);
out.close();
但我似乎不知道如何使用此方法输出XML


请有人给我指一下正确的方向。谢谢

您将使用
response.getOutputStream()
将XML写入Servlet输出

StreamResult result =  new StreamResult(response.getOutputStream());
最好使用
编写器
,可以在
流结果
上使用
响应.getWriter()

StreamResult result =  new StreamResult(response.getWriter());
此外,您还需要将
内容类型
标题设置为
文本/html;charset=UTF-8
(如果您的编码确实是UTF-8)


我希望这会有所帮助。

您将使用
response.getOutputStream()
将XML写入Servlet输出

StreamResult result =  new StreamResult(response.getOutputStream());
最好使用
编写器
,可以在
流结果
上使用
响应.getWriter()

StreamResult result =  new StreamResult(response.getWriter());
此外,您还需要将
内容类型
标题设置为
文本/html;charset=UTF-8
(如果您的编码确实是UTF-8)


我希望这会有所帮助。

您将使用
response.getOutputStream()
将XML写入Servlet输出

StreamResult result =  new StreamResult(response.getOutputStream());
最好使用
编写器
,可以在
流结果
上使用
响应.getWriter()

StreamResult result =  new StreamResult(response.getWriter());
此外,您还需要将
内容类型
标题设置为
文本/html;charset=UTF-8
(如果您的编码确实是UTF-8)


我希望这会有所帮助。

您将使用
response.getOutputStream()
将XML写入Servlet输出

StreamResult result =  new StreamResult(response.getOutputStream());
最好使用
编写器
,可以在
流结果
上使用
响应.getWriter()

StreamResult result =  new StreamResult(response.getWriter());
此外,您还需要将
内容类型
标题设置为
文本/html;charset=UTF-8
(如果您的编码确实是UTF-8)


我希望这有帮助。

您应该设置内容类型:

response.setContentType("text/xml; charset=UTF-8"); //you can set the encode you want to charset
PrintWriter out = response.getWriter();
out.print(yourXmlString);

您应该设置内容类型:

response.setContentType("text/xml; charset=UTF-8"); //you can set the encode you want to charset
PrintWriter out = response.getWriter();
out.print(yourXmlString);

您应该设置内容类型:

response.setContentType("text/xml; charset=UTF-8"); //you can set the encode you want to charset
PrintWriter out = response.getWriter();
out.print(yourXmlString);

您应该设置内容类型:

response.setContentType("text/xml; charset=UTF-8"); //you can set the encode you want to charset
PrintWriter out = response.getWriter();
out.print(yourXmlString);