没有在 xml 文件中返回正确的值?

Not returning correct value in xml file?

我正在尝试从我正在处理的项目的 XML 文件中获取值,但我似乎无法获取它...

这是 XML 文件:

我试过使用

    public static String getString(File file, String element) {
    try {
        File fXmlFile = file;
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);
        doc.getDocumentElement().normalize();
        NodeList nList = doc.getElementsByTagName(element);

        for (int temp = 0; temp < nList.getLength(); temp++) {
            Node nNode = nList.item(temp);

            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                Element eElement = (Element) nNode;

                return eElement.getElementsByTagName("author").item(0).getTextContent();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "Error";
}

使用此方法访问它

File mapdata = new File(HeroVsVilliansCore.getPlugin().getDataFolder(), File.separator + "Maps" + File.separator);
         File f = new File(mapdata, "Test.xml");

但它 returns "Error" 而不是 "author" 的值?

尝试使用 getDocumentElement 而不是第一个 getElementsByTagName(顺便说一句,element 的值是多少 - 应该是 "map"):

return doc.getDocumentElement ()
      .getElementsByTagName("author")
      .item(0).getTextContent();

或者拆分成几个语句并检查元素的大小确实非零。