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

时间:2016-01-23 07:08:37

标签: java bukkit

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

这是XML文件:

XML file code

我尝试使用

    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");

但它返回“错误”而不是“作者”的值?

1 个答案:

答案 0 :(得分:2)

尝试使用getDocumentElement代替第一个getElementsByTagName(顺便说一下element的值 - 应该是“map”):

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

或拆分为多个陈述,并说明元素的大小确实非零。