我有一个简单的脚本,它用从服务器接收到的值填充 html 表单
$.ajax({
url: getUrl(),
dataType: "xml"
}).done(function(xml) {
//get values from xml file and fill in html form
});
在服务器端生成xml的简单代码
public void writeXmlValues() throws Exception {
final HttpServletResponse response = context.getHttpResponse();
response.setContentType("application/xml; charset=UTF-8");
PrintWriter out = response.getWriter();
try
{
writeXmlValues(out, values);
}
finally
{
try
{
out.close();
}
catch (Throwable ignored){}
}
}
我在表单中添加 textarea 字段时遇到了问题。该字段可以包含带有行分隔符的文本,我可以将多行文本放入 xml 中。结果如下:
<?xml version='1.0' encoding='UTF-8'?>
<parameter name="Conclusion">eshgseht
awegewhw
agwhg</parameter>
但是 js 回调中的文本看起来有点不同(这里的代码完全一样):
<?xml version='1.0' encoding='UTF-8'?><parameter name="Conclusion">eshgseht awegewhw agwhg</parameter>
没有换行了!这不是 jquery 的错误(据我在 Firebug 中所见,响应已经是单行文本),这不是 StAX 的错误(它生成正确的 xml)。我不知道是怎么回事。 我可以使用 XML 格式获取换行符吗?或者我应该使用 json 或其他东西(这不是首选方式)?
更新: 最后我找到了这种行为的原因。即使使用 setContentType("application/xml"),响应也被解释为文本/html。非常感谢您的建议。
最佳答案
有没有考虑过用CDATA来写值? More info在 CDATA 和 Example implementation 上
关于java - 如何使用 jquery 获取带有换行符的 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13742022/