我创建了一个AbstractView,以便向浏览器输出一些XML,如下所示:
public abstract class AbstractXmlView extends AbstractView {
public AbstractXmlView() {
setContentType("application/xml");
}
@Override
protected void renderMergedOutputModel(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.setCharacterEncoding("UTF-8");
Document document = new DOMDocument();
document.setXMLEncoding("UTF-8");
buildXmlDocument(model, document, request, response);
response.getOutputStream().print(document.asXML());
}
public abstract void buildXmlDocument(Map<String, Object> model,
Document document, HttpServletRequest request,
HttpServletResponse response) throws Exception;
如您所见,我的子类将定义buildXMLDocument
方法,以填充实际交付给浏览器的XML文档,因此下面是一个简化的实现:
public class GetXmlContacts extends AbstractXmlView {
@Override
public void buildXmlDocument(Map<String, Object> model, Document document,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Element node = document.addElement("node");
node.setText ("I'm unicode áéíóú");
}
请注意元素节点
中的文本字符串“I'm unicodeáèóú”。当我向服务器请求这个时,我得到一个UTF-8编码的HTTP响应(OK),XML定义说它是UTF-8,但是节点的文本将被编码为ISO-8859-1(这是我的猜测,因为当我用Firefox更改编码时,字符串看起来是OK的)。
那么,为什么dom4j在定义为UTF-8时将一个文字字符串作为ISO?我的代码有问题吗?谢啦
解决了的!因为dom4j、元素有一些bug。setText()
不关心指定的编码和文档。asXML()
将返回一个ISO字符串,因此我对该行进行了如下修改:
response.getOutputStream().write(document.asXML().getBytes("UTF-8"));
一切都很顺利。。
需要生成的XML文件: 为根元素“wrapper:mmsrmessage”添加了两个名称空间,它没有问题。下面是它的Java代码: 但是,当我为元素“header:apphdr”添加两个名称空间时,我会得到错误消息: 线程“main”org.dom4j中出现异常。IllegalAddexception:没有这样的名称空间前缀 这是我在StackOverflow的第一个问题。我希望我能得到一个答案:
在使用VTD-XML解析包含特殊字符(如©的XML文档(UTF-8)时,我现在遇到了一个问题,即返回的元素片段(getElementFragment)不正确。 示例代码: 这将返回: 当更改标准字符集时。UTF_8转换为标准字符集。US\u ASCII它确实有效: 当输入文件是UTF-8文件时,这会导致不正确的行为。这可能是VTD-XML中的错误,还是我在这里做错了什么?
我正在尝试创建包含另一个XML的XML文档,比如child。 首先,我有一个对象Foo,它有一些属性。我用这个函数序列化它: 在另一个我无法访问Foo类的类中,我需要用这个Foo字符串在xml文档中保存一些数据。所以我有另一个像这样的物体: 当我序列化这个Bar对象并像xml文档一样保存它时。对于FooString元素,我得到了类似的结果。 我明白这个超文本标记语言字符实体(
问题内容: 我想发送一个ajax请求(通过Jquery,尽管我认为在这种情况下不相关),而不在Django中使用form元素。根据文档,我应该可以通过使用装饰器来做到这一点,但是我得到了。 我正在使用以下导入。 我没有找到有关的大量文档,因此我们将不胜感激。 顺便说一句,使用按预期方式工作。 提前致谢。 问题答案: 如果您在导入时遇到困难,它可能仅是1.4 alpha功能-我可以在树干上使用相同的
问题内容: Python 3.2.5 x64 ElementTree 我有需要使用python格式化的数据。本质上,我具有包含元素和子元素的文件。我需要删除其中一些元素的子元素。我已经检查了先前的问题,但无法解决。到目前为止,我拥有的最好的功能只是删除了每个第二子元素。 样本数据: 我需要的输出看起来像: 我有一段时间没有写任何东西了,我的代码也没用。我可以解析文件,然后将其写入,但我无法正确处理
问题内容: 我试图生成以下格式的xml: 我的查询如下: 我的查询没有完全产生记录标签,目前是 应该是 我尝试了所有可能性,但没有获得标签。谁能帮我解决这个问题。 问题答案: 我无法从xml显式获得预期的输出,相反,我使用了xml路径并获得了输出。这是我更新的查询 欢迎您发布明确使用xml的修复程序。