java - 如何使用 jquery 获取带有换行符的 XML?

标签 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"),响应也被解释为文本/html。非常感谢您的建议。

最佳答案

有没有考虑过用CDATA来写值? More info在 CDATA 和 Example implementation

关于java - 如何使用 jquery 获取带有换行符的 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13742022/

相关文章:

javascript - Jquery show hide 没有按预期工作?

javascript - 删除元素时 Jquery 变量丢失值

java - RHEL jdk-8u20-linux-x64.tar.gz 1.8 表现得像 32 位

java - 我想在用户使用我的应用程序之前执行登录

java - 为什么 Jtoolbar 会破坏我的 keyBindings?

xmllint : validate an XML file against two XSD schemas (envelope/payload)

python - ElementTree.SubElement 的参数有什么用?

java - 从具有 Class<? 的整数获取 Enum扩展枚举>对象

javascript - 如何在不接受焦点的元素上捕获键盘事件?

java - 不幸的是音频已停止