如何删除<root>由开始/结束文档方法添加的 StaxEventItemWriter 标记?



如何删除由开始/结束文档方法添加的 StaxEventItemWriter 标签?

它是在我生成XML文件时默认添加的,所以任何人都可以告诉我如何删除默认根标签。

 Ex-
    <?xml version='1.0' encoding='UTF-8'?>
    <root>
    <ressourcespleiade date="2015-10-03 06:38:00.000">
    ---
    ---
    </..>

我结束了这样的事情:

/**
 * {@link StaxEventItemWriter} which write no root tag as written elements are root
 * @param <T> Type of the written elements
 *
 * @author francois.dupire
 */
public class NoRootStaxEventItemWriter<T> extends StaxEventItemWriter<T> {
    /*
     * Methods
     */
    @Override
    protected void startDocument(XMLEventWriter writer) throws XMLStreamException {
        XMLEventFactory factory = createXmlEventFactory();
        // write start document
        writer.add(factory.createStartDocument(getEncoding(), getVersion()));
    }
    @Override
    protected void endDocument(XMLEventWriter writer) { }
}

IMO,这不是很干净,但也不是很糟糕。这样,您就可以依赖 StaxEventItemWriter 类的每个机制,但不编写根元素。

最新更新