dom解析小案例

xml文件的三種解析方式之---dom解析

dom解析是把xml文件的各個標籤當做節點,並且以樹的形式存放在內存中。

下面是一個小的案例:

package itcast.cn;


import java.io.IOException;


import javax.lang.model.element.Element;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;


import org.w3c.dom.Document;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.xml.sax.SAXException;


public class DomExercise {

public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {

//1取得一個工廠對象

  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

//2.通過這個工廠來獲取一個builder

  DocumentBuilder builder = factory.newDocumentBuilder();

  //3.通過這個builder獲得一個document

  Document document = builder.parse("person.xml");

  //4.通過這個document來解釋數據

//   //需求:獲取老王的值

//   NodeList nameList=document.getElementsByTagName("name");

//   Node node= nameList.item(1);

//   //獲取老王的值

//   String name=node.getTextContent();

//   System.out.println(name);

  

  NodeList personList  = document.getElementsByTagName("person");

  for (int i = 0; i < personList.getLength(); i++) {

          //取出每個person

    Node personNode = personList.item(i);

  NodeList childNodes = personNode.getChildNodes();

for (int j = 0; j < childNodes.getLength(); j++) {

Node chilidnode = childNodes.item(j);

if (chilidnode.getNodeType()==Node.ELEMENT_NODE) {

String name = chilidnode.getNodeName();

String age = chilidnode.getTextContent();

System.out.println(name+"="+age);

}

}

}

  

}


}

person.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>

<persons>

  <person id="001">

    <name>張宇</name>

    <age>23</age>

  </person>

  <person id="002">

    <name>老王</name>

    <age>23</age>

  </person>

</persons>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章