В приведенном ниже примере, когда мы входим в метод writeOneMoreElement() и возникает Exception, как получить доступ к предыдущим данным, которые мы пишем на XML. Здесь мы теряем каждую запись, если исключение происходит в методе writeOneMoreElement().при написании XML с помощью анализатора stax, если в моем собственном методе возникает исключение, как сохранить или получить доступ к предыдущим данным.
public class xmlSample {
public static void main(String[] args) {
XMLOutputFactory factory = XMLOutputFactory.newInstance();
try {
XMLStreamWriter writer1 = factory.createXMLStreamWriter(new FileWriter("E:\\sampleXML.xml"));
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
XMLOutputFactory xmlOutputFactory = new WstxOutputFactory();
XMLStreamWriter2 xtw = (XMLStreamWriter2) new WstxOutputFactory()
.createXMLStreamWriter(byteArrayOutputStream, "UTF-8");
xtw.writeStartDocument("UTF-8", "1.1");
xtw.setPrefix("itm", "http://adt.cmn.xmlns.commons.platform.actiance.com/core/1.0");
xtw.writeStartElement("document");
xtw.writeStartElement("data1");
xtw.writeCharacters("Sagar");
xtw.writeEndElement();
XMLStreamWriter2 writer2 = writeOneMoreElement(xtw);
writer2.writeStartElement("data2");
writer2.writeCharacters("Shubham");
writer2.writeEndElement();
writeOneMoreElement(writer2);
writer2.writeEndDocument();
writer2.close();
xtw.flush();
xtw.close();
System.out.println("XML :" + new String(byteArrayOutputStream.toByteArray()));
} catch (XMLStreamException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static XMLStreamWriter2 writeOneMoreElement(XMLStreamWriter2 writer2)
throws XMLStreamException, IOException {
try {
writer2.writeStartElement("ABC");
writer2.writeStartElement("data2");
writer2.writeAttribute("name2", "value2");
writer2.writeAttribute("otherAttribute", "true");
writer2.writeEndElement();
writer2.writeStartElement("data3");
writer2.writeAttribute("name3", "value3");
writer2.writeAttribute("otherAttribute", "true");
writer2.writeEndElement();
writer2.writeEndElement();
writer2.flush();
} catch (Exception e) {
e.printStackTrace();
}
return writer2;
}
}
Привет, пожалуйста, примите ответ, если вы нашли это полезным, или комментарий, почему это не было полезно. Это поможет всем остальным разработчикам, читающим это в будущем. – Ray