java 解析xml-document
阿新 • • 發佈:2019-02-04
<?xml version="1.0" encoding="utf-8" ?> <persons> <person> <name>zs</name> <age>12</age> <sex>男</sex> </person> <person> <name>ls</name> <age>14</age> <sex>女</sex> </person> <person> <name>ww</name> <age>11</age> <sex>男</sex> </person> </persons>
所用xml
import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) throws Exception{ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document d = db.parse(Test.class.getClassLoader().getResourceAsStream("resouce/persons.xml")); System.out.println(d); Element root = d.getDocumentElement(); List<Person> pList = new ArrayList<Person>(); NodeList nList = root.getChildNodes(); for (int i = 0;i<nList.getLength();i++){ Node node = nList.item(i); if(node.getNodeType() == Node.ELEMENT_NODE){ Element element = (Element) node; String name = element.getElementsByTagName("name").item(0).getTextContent(); String age = element.getElementsByTagName("age").item(0).getTextContent(); String sex = element.getElementsByTagName("sex").item(0).getTextContent(); // NodeList npl = node.getChildNodes(); // String name = null; // String age = null; // String sex = null; // for(int j = 0;j<npl.getLength();j++){ // Node np = npl.item(j); // if (np.getNodeName().equals("name")){ // name = np.getTextContent(); // } // if (np.getNodeName().equals("age")) { // age = np.getTextContent(); // } // if (np.getNodeName().equals("sex")){ // sex = np.getTextContent(); // } pList.add(new Person(name,age,sex)); } } for (Person p :pList) { System.out.println(p.getName()+" "+p.getAge()+" "+p.getSex()); } } }