Я пытаюсь проанализировать существующие XML файлы для приложения java, и некоторые элементы иногда смешивают содержимое, как показано ниже:
XML_STRING
<root>
<name>Michael</name>
<question>Text here</question>
</root>
XML_STRING_2
<root>
<name>Michael</name>
<question>Text here<measure>More Text</measure></question>
</root>
Я сделал следующие классы, чтобы разобрать эти данные.
Root Класс
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Root implements Serializable
{
private String name;
private Question question;
}
Класс вопроса
@XmlAccessorType(XmlAccessType.NONE)
public class Question implements Serializable
{
@XmlValue
private String questionText;
private String measure;
}
I Кажется, невозможно получить как Text Here
, так и More Text
для хранения внутри класса Question
.
JAXBContext.newInstance(Root.class)
.createUnmarshaller()
.unmarshal(new ByteArrayInputStream(XML_STRING_2.getBytes("UTF-8")));
Я печатаю результат из приведенного выше фрагмента кода (с * 1023 от Lombok * добавлены аннотации к Root
и Question
) для XML_STRING
и XML_STRING_2
.
XML_STRING : Root(name=Michael, question=Question(questionText=Text here, measure=null))
XML_STRING_2 : Root(name=Michael, question=Question(questionText=, measure=null))