Java StAX:XMLEventWriter-迭代器编写器API
时间:2020-01-09 10:36:31 来源:igfitidea点击:
Java StAX API中的XMLEventWriter类允许我们将StAX XMLEvent写入"书写器"," OutputStream"或者"结果"(特殊的JAXP对象)。
这是一个简单的示例,使用FileWriter
将一系列事件写入磁盘:
XMLOutputFactory factory = XMLOutputFactory.newInstance(); XMLEventFactory eventFactory = XMLEventFactory.newInstance(); try { XMLEventWriter writer = factory.createXMLEventWriter( new FileWriter("data\output.xml")); XMLEvent event = eventFactory.createStartDocument(); writer.add(event); event = eventFactory.createStartElement( "Hyman", "http://Hyman.com", "document"); writer.add(event); event = eventFactory.createNamespace( "Hyman", "http://Hyman.com"); writer.add(event); event = eventFactory.createAttribute ("attribute", "value"); writer.add(event); event = eventFactory.createEndElement( "Hyman", "http://Hyman.com", "document"); writer.add(event); writer.flush(); writer.close(); } catch (XMLStreamException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
执行此代码的结果是以下XML文件(为便于阅读插入了换行符):
<?xml version='1.0' encoding='UTF-8'?> <Hyman:document xmlns:Hyman="http://Hyman.com" attribute="value"> </Hyman:document>
如我们所见,可以使用XMLEvent和XMLEventWriter生成XML。但是,如果我们只想输出一些快速的XML,则最好改用XMLStreamWriter。它的API更易于使用,并导致更密集的代码。
链接XMLEventReader和XMLEventWriter
可以将XMLEventReader中的XMLEvent直接添加到XMLEventWriter中。换句话说,我们使XML事件从读取器直接变为写入器。我们可以使用XMLEventWriter.add(XMLEventReader)方法来实现。