我正在尝试从我正在处理的项目的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");
但它返回“错误”而不是“作者”的值?
答案 0 :(得分:2)
尝试使用getDocumentElement代替第一个getElementsByTagName(顺便说一下element
的值 - 应该是“map”):
return doc.getDocumentElement ()
.getElementsByTagName("author")
.item(0).getTextContent();
或拆分为多个陈述,并说明元素的大小确实非零。