gpt4 book ai didi

java - 写入 XML 文件时出现 XMLStreamException

转载 作者:太空宇宙 更新时间:2023-11-04 08:00:12 27 4
gpt4 key购买 nike

在我使用此代码使用 StAX 编写 XML 文件之前:

 // Create a XMLOutputFactory
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
// Create XMLEventWriter
XMLEventWriter eventWriter = outputFactory
.createXMLEventWriter(new FileOutputStream(behaviorsFilePath));
// Create a EventFactory
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
XMLEvent end = eventFactory.createDTD("\n");
// Create and write Start Tag
StartDocument startDocument = eventFactory.createStartDocument();
eventWriter.add(startDocument);
eventWriter.add(end);
eventWriter.add(end);

// Create config open tag
StartElement configStartElement = eventFactory.createStartElement("",
"", ROOT);
//...

这段代码工作正常,但现在它抛出一个javax.xml.stream.XMLStreamException:尝试编写多个DOCTYPE声明异常。

在调试应用程序时,我可以看到第二次调用时抛出异常:eventWriter.add(end);

为什么这段代码以前可以工作,现在却不行了?

更新:

我不确定这是否真的很重要,但这段代码正在 SwingWorker 线程中运行...

我所做的唯一可能出现问题的修改是我向项目添加了库以使用 Axis2 Web 服务(其中之一是:geronimo-stax-api_1.0_spec-1.0.1.jar)...然后我看到了 this :

Speed - Axis2 uses its own object model and StAX (Streaming API for XML) parsing to achieve significantly greater speed than earlier versions of Apache Axis.

this :

stax-api-1.0.1.jar (The StAX API's that contain the javax.xml.namespace.QName class. This jar may be replaced by any other jar that contains the javax.xml.namespace.QName implementation. However Axis2 uses this class from the stax-api-1.0.1.jar which comes bundled with the Axis2 distribution)

最佳答案

因为,就像异常已经告诉您的那样,您正在“尝试编写多个 DOCTYPE 声明”。为什么你的代码中有两次 eventWriter.add(end);

关于java - 写入 XML 文件时出现 XMLStreamException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12955720/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com