如何使用jquery使用换行符获取XML?

时间:2012-12-06 10:51:28

标签: java jquery xml linefeed

我有一个简单的脚本,用从服务器

收到的值填充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”),响应也被解释为text / html。非常感谢您的建议。

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用CDATA写入值? CDATA上的More infoExample implementation