我刚刚开始学习如何加载XML文件并使用它们来创建一些对象昨天,所以我遇到了一些我没有的东西,大约15分钟左右的时间环顾四周,能够弄清楚所以我决定尝试在这里问他们。
DBLoader:https://github.com/Valkryst/Project_02/blob/master/src/main/java/valkryst/item/DBLoader.java#L93
XMLPARSE:
https://github.com/Valkryst/Project_02/tree/master/src/main/java/valkryst/core/xml
DBLoader类是我从XML文件加载所有变量并根据一些事情创建Armor或Weapon对象的地方。 XMLParse类只是为了保存一些我在使用XML文件时经常需要的方法。
现在谈谈我的两个问题......
我如何在DBLoader类中设置我的代码的方式,检查是否除了“body”和“/ body”之外没有其他元素。 ? (将引号替换为>和<。)
我确实有更多的问题,但这是在凌晨4点左右,所以我有点不合适,我会把它放在我最重要的两个问题上。
感谢您的回复。
编辑:刚出现的另一个错误,我似乎无法在疲惫的心态中弄明白,所以我只是将它添加到这篇文章中,以防万一有人在帮我解决我的主要问题时看到问题。< / p>
运行DBLoader时,由于某种原因,它似乎总是跳过“/XML/Items/Armor/Boot.xml”。我已经添加了一个print语句来告诉我文件何时成功加载,但只有“/XML/Items/Armor/Sword.xml”成功完成。它们是我的两个测试XML文件,因此只有它们才能成功加载。对不起,如果听起来很奇怪,我就睡着了。
答案 0 :(得分:0)
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc;
File f = new File(paths[i]);
FileReader fr = new FileReader(f);
if (fr.read()==-1){
//file is empty
}
else{
doc= dBuilder.parse(f);
int n = rankdoc.getChildNodes().getChildNodes().getLength();
// if n > 0, there's something else besides your root element
}
fr.close();