- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了创建大型 XML 文件,我们决定使用 StAX API。基本结构是使用低级 API 构建的:createStartDocument()、createStartElement()。这按预期工作。
但是,在某些情况下,我们喜欢附加驻留在字符串(从数据库中检索)中的现有 XML 数据。以下代码段说明了这一点:
import java.lang.*;
import java.io.*;
import javax.xml.stream.*;
public class Example {
public static void main(String... args) throws XMLStreamException {
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
StringWriter writer = new StringWriter();
XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(writer);
eventWriter.add(eventFactory.createStartDocument("UTF-8", "1.0"));
eventWriter.add(eventFactory.createStartElement("ns0", "http://example.org", "root"));
eventWriter.add(eventFactory.createNamespace("ns0", "http://example.org"));
//In here, we want to append a piece of XML which is stored in a string variable.
String xml = "<fragments><fragment><data>This is pure text.</data></fragment></fragments>";
eventWriter.add(inputFactory.createXMLEventReader(new StringReader(xml)));
eventWriter.add(eventFactory.createEndDocument());
System.out.println(writer.toString());
}
}
使用上面的代码,根据实现的不同,我们没有得到预期的结果:
<?xml version="1.0" ... <fragments><fragment>...
-> 这会导致无效的 XML。我还尝试使用以下方法附加 XML:
eventFactory.createCharacters(xml);
这里的问题是,即使附加了 XML,< 和 > 也会转换为 < 和 >。因此,这会导致无效的 XML。
我是否缺少允许我简单地将字符串附加为 XML 的 API?
最佳答案
如有必要,您可以先使用任何 StartDocument:
String xml = "<fragments><fragment><data>This is pure text.</data></fragment></fragments>";
XMLEventReader xer = inputFactory.createXMLEventReader(new StringReader(xml));
if (xer.peek().isStartDocument())
{
xer.nextEvent();
}
eventWriter.add(xer);
关于java - 如何将 XML(字符串)附加到已经创建文档开头的 XmlEventWriter(StAX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603731/
我是 stackoverflow 的新手,所以希望我正确设置了这个问题的格式!我已经通过网站(和谷歌)搜索了我的问题的答案,但一直无法找到这对我不起作用的原因。 我正在尝试从 XMLEventRead
所以这个问题与标题中所说的差不多。我正在做一些 xml 工作并使用 XMLEventWriter。我遇到的大问题是我需要创建一些自闭标签 问题是我还没有找到使用 eventWriter 执行此操作的方
由于我缺乏对文件系统行为的了解,我提前道歉。 我需要读取一个大的 XML 文件,修改它,然后将其写入同一个文件。 这是我设置 XMLEventReader 和 XMLEventWriter 的代码:
我正在使用“XMLEventWriter”在 Java 中生成 XML 文件。代码片段如下: XMLEventWriter writer = outputFactory.createXMLEventW
我正在尝试使用 StAX API 中的 XMLEventWriter 从头开始编写 XML 文档。 我不知道如何获取要发出的默认命名空间属性。 例如,默认命名空间 URI 字符串为“http://
我正在使用 JAXB 来生成 XML 文件,并且由于业务需要,我目前正在使用 XMLEventWriter 将其写入其他一些 XML 文件的中间: marshaller.marshal(jaxbEle
为了创建大型 XML 文件,我们决定使用 StAX API。基本结构是使用低级 API 构建的:createStartDocument()、createStartElement()。这按预期工作。 但
我没有在 javax.xml.stream.XMLEventWriter 或 javax.xml.stream.XMLOutputFactory 中看到一个选项来设置任何一个空元素被写入(而不是明确的
我是一名优秀的程序员,十分优秀!