2013-06-28 6 views
1

Быстрый вопрос о читателе и писателе stAX xml.Редактирование xml-файла java

Исходя из предыдущего вопроса о том, как изменить одну часть файла XML с помощью StAX, это то, что я делаю:

XMLInputFactory inFactory = XMLInputFactory.newInstance(); 
XMLEventReader eventReader = inFactory.createXMLEventReader(new FileInputStream("bla.xml")); 
XMLOutputFactory factory = XMLOutputFactory.newInstance(); 
XMLEventWriter writer = factory.createXMLEventWriter(new FileWriter(new file("bla2.xml)); 
XMLEventFactory eventFactory = XMLEventFactory.newInstance(); 

while (eventReader.hasNext()) { 
    XMLEvent event = eventReader.nextEvent(); 
    writer.add(event); 

если (условие) создавать и добавлять другие события } ... .... Таким образом, он копирует файл, однако делает изменения, если условие согласовано.

  • Однако для этого я создаю новый файл - bla2.xml. Это необходимо?
  • Будет ли stAX просто разрешить мне записать в исходный файл bla1.xml?
  • Если нет, то я предполагаю, что мне нужно будет создать новый файл, удалить старый и переименовать новое в то же самое, что и предыдущее. верный?

ответ

0

На этой линии:

XMLEventWriter writer = factory.createXMLEventWriter(new FileWriter(new file("bla2.xml)); 

Изменение bla2.xml просто bla.xml. Затем новый файл перезапишет предыдущий.