Вы можете сделать это, но вы должны написать какой-нибудь котел пластины код. Вы должны создать экземпляр XMLStreamReader
, чтобы можно было выполнить индивидуальное чтение вашего ввода xml. Метод next()
позволяет перейти к следующему событию разбора читателя. Это довольно сложный метод(), связанный с внутренними правилами читателя. Так что читайте документацию понимает особенности:
Из Javadoc:
INT javax.xml.stream.XMLStreamReader.next() кидает XMLStreamException
Получить следующее событие разбора - процессор может вернуть все смежных символьных данных в одном куске, или он может разбить его на несколько кусков . Если для свойства javax.xml.stream.isCoalescing установлено значение true , содержимое элемента должно быть объединено, и только одно событие CHARACTERS должно быть возвращено для непрерывного содержимого элемента или разделов CDATA. По ссылки на объекты по умолчанию должны быть расширены и прозрачно сообщаться в приложение . Исключение будет выбрано, если ссылка объекта не может быть расширена. Если содержимое элемента пуст (т. Е. Содержимое «") , то никаких сообщений о событиях CHARACTERS не сообщается.
Учитывая следующий XML: содержание textHello </приветствие>]]> другого содержания поведения вызова следующими() при нахождении на обув будет: 1 комментарий (COMMENT) 2- то секция символов (символы) 3- затем CDATA раздел (еще) 4- сИМВОЛЫ то символы секция следующего (еще сИМВОЛЫ) 5- то END_ELEMENT
Примечание: пустой элемент (например) будет сообщенными с два отдельно события: START_ELEMENT, END_ELEMENT - это сохраняет парсинг эквивалентности пустого элемента. Этот метод будет вызывать IllegalStateException, если он вызывается после того, как hasNext() возвращает false.
Возвращает: целочисленный код, соответствующий текущему событию синтаксического анализа
Позвольте мне проиллюстрировать, как приступить к испытанию блока:
@Test
public void mapXmlToPojo() throws Exception {
XMLInputFactory factory = XMLInputFactory2.newFactory();
InputStream inputFile = MapXmlToPojo.class.getResourceAsStream("pojo.xml");
XMLStreamReader xmlStreamReader = factory.createXMLStreamReader(inputFile);
XmlMapper xmlMapper = new XmlMapper();
xmlStreamReader.next();
xmlStreamReader.next();
Pojo pojo = xmlMapper.readValue(xmlStreamReader, Pojo.class);
Assert.assertEquals("test", pojo.getName());
}