dom4J: Как получить значение Elements of Node? - PullRequest
0 голосов
/ 13 октября 2011

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

<Employees>
    <Emp id=1>
        <name>jame</name>
        <age>12</age>
    </Emp>
    .
    .
    .
</Employees> 

Теперь мне нужно хранить информацию о всех сотрудниках в списке моего класса сотрудников. Пока я не наберу следующее:

List<? extends Node> lstprmntEmps = document.selectNodes("//Employees/Emp");
ArrayList<Employee> Employees = new ArrayList<Employee>();//Employee is my custom class
for (Node node : lstprmntEmps)
{  
Employees.add(ParseEmployee(node));//ParseEmployee(. . .) is my custom function that pareses emp XML and return Employee object
}

Теперь, как мне узнать имя и возраст выбранного в данный момент узла? существует ли такой метод node.getElementValue("name");

1 Ответ

3 голосов
/ 13 октября 2011

Приведите каждый узел к Element, затем спросите у элемента его первый подэлемент "name" и его первый подэлемент "age" и получите их текст.

См. http://dom4j.sourceforge.net/apidocs/org/dom4j/Element.html.

Метод elementText(String) для Element, возможно, получает подэлемент по имени и извлекает его текст за одну операцию, но он недокументирован, поэтому трудно сказать.

Обратите внимание, что переменные и методы всегда должны начинаться со строчной буквы в Java.

...