如何删除由开始/结束Document方法添加的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) { }

}

海事组织,这不是很干净,但也不是很糟糕。这样,您可以依靠StaxEventItemWriter类的每种机制,而无需编写根元素。

10-08 09:12