Java XML解析-使用重复节点解析XML

时间:2018-07-10 08:46:28

标签: java xml xml-parsing

伙计们,我正在尝试解析以下XML结构:

<root>
  <data>
    <doc>
      <doc1></doc1>
      <doc2></doc2>
    </doc>
    <INFO>
        <INFO1></INFO1>
        <INFO2></INFO2>
        <INFO3></INFO3>
        <INFO4></INOF4>
    <ASSOC_SECTION>
      <ASSOC_SECTION1>hello1</ASSOC_SECTION1>
      <ASSOC_SECTION2></ASSOC_SECTION2>
    </ASSOC_SECTION>
    <ASSOC_SECTION>
     <ASSOC_SECTION1>hello2</ASSOC_SECTION1>
      <ASSOC_SECTION2></ASSOC_SECTION2>
    </ASSOC_SECTION>
   </INFO>
  </data>
 </root> 

我正在尝试从重复节点读取值。 我能够从第一个重复节点读取ASSOC_SECTION1的值,但是在尝试从第二个节点读取时,我得到了空指针异常。

public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException {
        // TODO Auto-generated method stub
        File inputFile = new File(inputFile);
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document document = builder.parse(inputFile);
        document.getDocumentElement().normalize();
        System.out.println("Root Element-->"+document.getDocumentElement().getNodeName());
        NodeList nodeList = document.getElementsByTagName("ASSOC_SECTION");
        System.out.println(nodeList.getLength());
        for (int i = 0; i < nodeList.getLength(); i++) {
            Node data = nodeList.item(i);
            if(data.getNodeType() == Node.ELEMENT_NODE){
                Element element = (Element) data;
                System.out.println(element.getElementsByTagName("ASSOC_SECTION1").item(i).getTextContent());
            }
        }

关于我为什么在这里出现空指针问题的任何想法吗?

0 个答案:

没有答案