使用 STAX XMLStreamWriter 合并 XML [英] merge XML using STAX XMLStreamWriter
本文介绍了使用 STAX XMLStreamWriter 合并 XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 STAX
和 XMLStreamWriter 创建了一个 XML
.它工作正常.
I have created an XML
using STAX
and XMLStreamWriter. It works fine.
我需要将两个 xml 合并在一起.我面临的问题是患者 Pojo 向我返回包含所有患者信息的 XML 如下
I need to merge two xml together. The problem that I am facing is the patient Pojo returns me XML containing all the patient information is below
<Patient>
<SocialSecurity>3333344</SocialSecurity>
<Name>
<LastName>pillai</LastName>
<FirstName>dhanya</FirstName>
<Name>
<Patient>
我需要在
之后将其添加到现有的 XML 中,例如合并.
I need to add this into existing XML after <proID>
like merging.
<?xml version="1.0" ?>
<Validate>
<proID>123</prodID>
</Validate>
请指教
推荐答案
答案如下
public static void main(String[] args) throws Throwable {
XMLEventWriter eventWriter;
XMLEventFactory eventFactory;
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
eventWriter = outputFactory.createXMLEventWriter(bos);
eventFactory = XMLEventFactory.newInstance();
XMLEvent newLine = eventFactory.createDTD("\n");
// Create and write Start Tag
StartDocument startDocument = eventFactory.createStartDocument();
eventWriter.add(startDocument);
eventWriter.add(newLine);
StartElement configStartElement = eventFactory.createStartElement("","","Message");
eventWriter.add(configStartElement);
eventWriter.add(newLine);
XMLInputFactory inputFactory = XMLInputFactory.newFactory();
PatientDetails patientDetails= new PatientDetails();// Here I have called an POJO that return String and we add
String xml = patientDetails.getPatientDetails();
Source src = new StreamSource(new java.io.StringReader(xml));
XMLEventReader test = inputFactory.createXMLEventReader(src);
while(test.hasNext()){
XMLEvent event= test.nextEvent();
//avoiding start(<?xml version="1.0"?>) and end of the documents;
if (event.getEventType()!= XMLEvent.START_DOCUMENT && event.getEventType() != XMLEvent.END_DOCUMENT)
eventWriter.add(event);
// eventWriter.add(newLine);
test.close();
} //end of while
eventWriter.add(eventFactory.createEndElement("", "", "Message"));
eventWriter.add(newLine);
eventWriter.add(eventFactory.createEndDocument());
eventWriter.close();
System.out.println(bos.toString());
}//end of main
这篇关于使用 STAX XMLStreamWriter 合并 XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文