Я искал alot для решения, но, к сожалению, я не нашел ничего, что могло бы решить мою проблему.синтаксический анализ вложенных элементов с использованием jaxb
У меня огромный xml для платформы электронного обучения. в этом xml у меня есть вложенный элемент с тем же именем.
, такие как:
<organizations>
<organization identifier="" structure="">
<title>TITLE</title>
<item identifier="ITEM_0" identifierref="55555555" image="" isvisible="1" pagetype="" parameters="">
<title>Welcome</title>
</item>
<item identifier="ITEM_456" identifierref="6666666" image="" isvisible="1" pagetype="" parameters="">
<title>TITLE1</title>
<item identifier="ITEM_457" identifierref="77777777" image="" isvisible="1" pagetype="" parameters="">
<title>TITLE2</title>
<item identifier="ITEM_219" identifierref="88888888" image="" isvisible="1" pagetype="" parameters="">
<title>TITLE3</title>
</item>
<item identifier="ITEM_73" identifierref="99999999" image="" isvisible="1" pagetype="" parameters="">
<title>TITLE4</title>
</item>
<item identifier="ITEM_74" identifierref="000000000" image="" isvisible="1" pagetype="" parameters="">
<title>TITLE5</title>
</item> </item>
Как мы можем видеть несколько «пункт» s в «пункта» и всякий раз, когда я пытаюсь обратного вызова пунктов я получаю только первый «родительский» элемент.
Вот мой класс Java Item:
@XmlElementRef(name="item")
public List<Item> items = new ArrayList<Item>();
@XmlAttribute(name = "identifier", required = true)
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name = "NCName")
protected String identifier;
@XmlAttribute(name = "identifierref", required = false)
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name = "NCName")
protected String identifierref;
@XmlAttribute(name = "isvisible", required = false)
protected boolean isvisible;
Например, всякий раз, когда я называю название любого из дочерних элементов я всегда основной родительским названием «Добро пожаловать!» это означает, что я не могу попасть в рекурсивный. Хотя мой метод полностью прав после долгого времени отладки ... всякий раз, когда я вызываю getItems(), я получаю []. любая помощь?
Спасибо, но я пытался с большим количеством вариаций аннотаций до частного Списка- элементов = новый ArrayList
- (); , ничего не помогло! включая ваше предложение –
Deksterious
Пробовал ли вы @XmlAccessorType (XmlAccessType.FIELD) перед классом Item? – dk14
есть. это сработало. Большое спасибо. – Deksterious