我在使用dom解析器解析xml文件时遇到了一些问题。基本上我希望下面列出的xml由dom解析。问题是,它给了我一个错误,并避免它我想要正确阅读它。首先,我希望它首先读取,变量只在第一个标题中,然后读取仅在第二个标题中的变量。我不想按项目编号读取它,因为并非所有第二个标题变量都与第一个标题中的名称相同,因此可能会导致更多问题。整个xml非常大,我需要在每个标题中操作大约50-60个变量。
所以有人可以给我任何示例代码或链接如何使用标题读取它?
<Analyzer version="2.0">
<event1>
<xxxx lll="FALSE" mmm="FALSE" ggg="FALSE" ccc="FALSE"/>
<cccc lll="FALSE" mmm="FALSE" ggg="FALSE" ccc="FALSE"/>
</event1>
<event2>
<xxxx drdr="2.500000000000000000000000e+00" zzzz="FALSE" />
<notcccc drdr="1.556000000000000000000000e+00" zzzz="FALSE" />
</event2>
</Analyzer>
我的程序代码的一部分,我只是没有包括最后的结束。
File inputFile = new File("xxxx.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Analyzer");
int k =0;
Node nNode = nList.item(k);
Element eElement = (Element) nNode;
nList = doc.getElementsByTagName("xxxx");
nNode = nList.item(k);
eElement = (Element) nNode;
System.out.println("Event :" + nNode.getNodeName());
class.lll = Boolean.valueOf(eElement.getAttribute("lll"));
nList = doc.getElementsByTagName("xxxx");
nNode = nList.item(k);
eElement = (Element) nNode;
System.out.println("Event :" + nNode.getNodeName());
class.xxxx2 = Float.valueOf(eElement.getAttribute("drdr"));
我收到错误列在下面
java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseFloat(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at java.lang.Float.valueOf(Unknown Source)
at configure.parseXml(configure.java:209)
at configure.main(configure.java:28)
java.lang.NullPointerException
at java.util.Calendar.setTime(Unknown Source)
at java.text.SimpleDateFormat.format(Unknown Source)
at java.text.SimpleDateFormat.format(Unknown Source)
at java.text.DateFormat.format(Unknown Source)
at configure.saveXml(configure.java:807)
at configure.main(configure.java:29)