Dom Parser Java - > 2具有不同属性的不同标头中的相同名称标签。怎么样?

时间:2016-04-28 16:19:34

标签: java xml parsing dom

我在使用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)

0 个答案:

没有答案