我有一个如下所示的 XML 文件。
<?xml version="1.0" encoding="UTF-8"?>
<Site>
  <Name>MySite</Name>
  <Groups>
      <Default></Default>
      <GroupA></GroupA>
  </Groups>
</Site>
我想获取 Groups 子元素的所有名称(在本例中为“Default”和“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
什么是正确的语法?我不明白这个例外。