#java #xml #parsing #stax
Вопрос:
Предполагая, что у меня есть код, аналогичный:
XMLEventFactory eventFactory = XMLEventFactory.newInstance();
XMLEventReader reader =
XMLInputFactory.newInstance().createXMLEventReader(
new java.io.FileInputStream(args[0]));
XMLEventWriter writer =
XMLOutputFactory.newInstance().createXMLEventWriter(
System.out);
while(reader.hasNext()) {
XMLEvent event = reader.nextEvent()
if (event.isStartElement()) {
StartElement startElement = event.asStartElement();
if(startElement.getName().getLocalPart().equals("SomeNode")) {
// Change value of attribute "Id" ...
}
}
writer.add(event);
}
writer.flush();
(Также см.: https://docs.oracle.com/javaee/5/tutorial/doc/bnbfl.html#bnbgq)
Как можно изменить значение определенного атрибута из узла startElement
События, сохраняя и не зная обо всех остальных?
Я знаю, что могу создать новое событие атрибута с помощью XMLEventFactory
— однако я не уверен, как изменить event
экземпляр или создать новый на его основе.