)?

ить: вот как я загружаю документ XML, как я использовал его в ответе Блейза. Я загружаю это так, потому что я хочу работать с узлом, а не со всем документом. Даже при использовании всего документа у меня все еще возникают проблемы при загрузке таким способом.

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
factory.setNamespaceAware(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("[path to doc]/input.xml");
TestClass testClass = (TestClass) unmarshaller.unmarshal(doc);

У меня есть XML, который выглядит так:

<test>
  <items>
    <item type="cookie">cookie</item>
    <item type="crackers">crackers</item>
  </items>
</test>

И класс:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "test")
public class TestClass
{
  @XmlPath("items/item/text()")
  @XmlElement
  private ArrayList<String> itemList = new ArrayList<String>();

  // getters, setters omitted
}

Приведенный выше код будет работать независимо от того, есть ли у меня@XmlElementи я получаю ArrayList, содержащий [cookie, Взломщики].

Если я изменю декларацию выше на

@XmlPath("items/item/@type")
@XmlElement
private ArrayList<String> itemList = new ArrayList<String>();

мой ArrayList пуст.

Моя конечная цель - просто иметь атрибуты, чтобы мой XML выглядел так:

<test>
  <items>
    <item type="cookie"/>
    <item type="crackers"/>
  </items>
</test>

Возможно ли то, что я пытаюсь сделать, вытащить список атрибутов с помощью XPath, возможно, и если да, то как?

Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос