所以我的代码很简单,它创建了我想要它创建的东西,但我不知道我是否真的看到使用javax.xml.stream
包的任何好处。
我的要求是否过于基本无法真正利用课程?我看到的唯一真正的好处是writer.EndElement()
和writer.EndDocument()
正确关闭了标签,但是我不知道如何创建新的行或标签(也就是正确的格式),而无需手动编写它们。在下面做了。
public void WriteUserInfo(String username, String password)
throws FileNotFoundException, XMLStreamException {
outputStream = new FileOutputStream(getXmlFile());
factory = XMLOutputFactory.newInstance();
writer = factory.createXMLStreamWriter(outputStream);
writer.writeStartDocument(XMLTAG);
writer.writeCharacters("\n");
writer.writeStartElement(USER);
writer.writeCharacters("\n\t");
writer.writeStartElement(USERNAME);
writer.writeCharacters(username);
writer.writeEndElement();
writer.writeCharacters("\n\t");
writer.writeStartElement(PASSWORD);
writer.writeCharacters(password);
writer.writeEndElement();
writer.writeCharacters("\n");
writer.writeEndDocument();
writer.close();
}
答案 0 :(得分:0)
考虑使用Saxon的XMLStreamWriter接口实现。这提供了广泛的序列化选项,包括自动缩进(以及XSLT xsl:output中提供的所有其他选项)。您可以通过s9api Serializer类获得此功能。