从JAXB-CXF取消编组时删除了空格

时间:2016-08-11 16:07:41

标签: java xml xslt jaxb

根据我们的要求,我们必须在xml输出中保留空格,使用xslt创建xml,并将空格返回到JAX B,例如,

<code>test</code>
  <value> </value>

但是当这个由JAXB unmarshaller处理时,我们正在失去空白区域,有没有办法让我们可以获得带有空格的XML

提前谢谢

此致 哈

1 个答案:

答案 0 :(得分:0)

尝试使用:

marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8")

在编组xml之前。

如果此解决方案无法完成此任务,您可以编写自己的读取过滤器。

来源:https://recalll.co/app/?q=java%20-%20JAXB%20unmarshal%20deletes%20newline

    XMLStreamReader xsr = xif.createXMLStreamReader(new StreamSource("src/forum22284324/input.xml"));
    xsr = xif.createFilteredReader(xsr, new StreamFilter() {

        @Override
        public boolean accept(XMLStreamReader reader) {
            if(reader.getEventType() == XMLStreamReader.CHARACTERS) {
                return reader.getText().trim().length() > 0;
            } 
            return true;
        }

    });