У меня есть XML-файл, как показано ниже.Как получить все имена элементов с помощью JDOM 2 через XPath в Java 7?
<?xml version="1.0" encoding="UTF-8"?>
<Site>
<Name>MySite</Name>
<Groups>
<Default></Default>
<GroupA></GroupA>
</Groups>
</Site>
Я хочу, чтобы все имена групп дочерних элементов (в данном примере „По умолчанию“ и „GroupA“) в виде списка строк. Я пытался сделать следующее.
public List<String> getGroupNames() {
List<String> names = new ArrayList<String>();
XPathExpression<Text> xpath = XPathFactory.instance().compile(
"/Site/Groups/*/name()", Filters.text());
List<Text> elements = xpath.evaluate(document);
if (elements.size() > 0) {
for (Text text : elements) {
names.add(text.getText());
}
return names;
}
return null;
}
Это нелегко со следующим исключением.
class org.jaxen.saxpath.XPathSyntaxException: /Site/Groups/*/name(): 20: Expected node-type
Каков правильный синтаксис для этого? Я не понимаю исключения.