Может Java потоковый XML-парсер, то есть javax.xml.stream.XMLEventReader отличить пустой элементМожет ли потоковый XML-анализатор Java отличать пустой элемент от самозакрывающегося пустого элемента?
<document>
<empty></empty>
<document>
от самозакрывания пустого элемента?
<document>
<empty/>
<document>
Давайте предположим, что мы разбираем оба указанных выше фрагментов XML и печати типСобытия и само событие, так же, как это:
System.out.println("eventType:" + event.getEventType() + "; element:"+event.toString());
Оба указанных выше фрагментов будет производить тот же результат:
eventType:7; element:<?xml version="null" encoding='null' standalone='no'?>
eventType:1; element:<document>
eventType:4; element:
eventType:1; element:<empty>
eventType:2; element:</empty>
eventType:2; element:</document>
eventType:8; element:ENDDOCUMENT
Для того, чтобы дать некоторый контекст, мы хотим переписать некоторые части xml на основе некоторых правил, но хотим сохранить другие части точно так, как они есть, то есть, мы хотим сохранить пустые элементы в их первоначальном виде, хотя две формы семантически одинаковы. Если у нас есть обычный пустой элемент (1-й пример), мы хотим сохранить его таким образом, если у нас есть самозакрывающийся пустой элемент, мы хотим также написать самозакрывающийся элемент в результате. Можем ли мы достичь этой цели с помощью javax.xml.stream.XMLEventReader?
Michael, спасибо за ваш ответ. Не могли бы вы взглянуть на этот следующий вопрос? http://stackoverflow.com/questions/42025027/is-there-an-efficient-streaming-xml-parser-in-java-that-would-preserve-the-exact – bpgergo