需要解析的XML文档
* 根结点(document):代表的是XML文档本身,是解析XML文档的入口
* 根元素结点(root):表示XML文档的根元素,它对应于XML文档的Root.
*/
<?xml version="1.0"?>
<PEOPLE>
<PERSON PERSONID="E01">
<NAME>Tony Blair</NAME>
<ADDRESS>10 Downing Street, London, UK</ADDRESS>
<TEL>(061) 98765</TEL>
<FAX>(061) 98765</FAX>
<EMAIL>blair@everywhere.com</EMAIL>
</PERSON>
<PERSON PERSONID="E02">
<NAME>Bill Clinton</NAME>
<ADDRESS>White House, USA</ADDRESS>
<TEL>(001) 6400 98765</TEL>
<FAX>(001) 6400 98765</FAX>
<EMAIL>bill@everywhere.com</EMAIL>
</PERSON>
<PERSON PERSONID="E03">
<NAME>Tom Cruise</NAME>
<ADDRESS>57 Jumbo Street, New York, USA</ADDRESS>
<TEL>(001) 4500 67859</TEL>
<FAX>(001) 4500 67859</FAX>
<EMAIL>cruise@everywhere.com</EMAIL>
</PERSON>
<PERSON PERSONID="E04">
<NAME>Linda Goodman</NAME>
<ADDRESS>78 Crax Lane, London, UK</ADDRESS>
<TEL>(061) 54 56789</TEL>
<FAX>(061) 54 56789</FAX>
<EMAIL>linda@everywhere.com</EMAIL>
</PERSON>
</PEOPLE>
解析代码
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
/**
* 根结点(document):代表的是XML文档本身,是解析XML文档的入口
* 根元素结点(root):表示XML文档的根元素,它对应于XML文档的Root.
*/
public class Demo {
public static void main(String[] args) {
//1.获得DOM解析器工厂-->用于创建具体的解析器
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//2.获得具体的DOM解析器
DocumentBuilder builder = dbf.newDocumentBuilder();
//3.解析一个XML文档,获得Document对象(根结点)
Document document = builder.parse(new File("candidate.xml")); //candidate.xml放在项目目录下
NodeList nodeLists = document.getElementsByTagName("PERSON");
// int length = nodeLists.getLength();
// System.out.println(length);
for(int i = 0; i < nodeLists.getLength(); i++){
Element element = (Element)nodeLists.item(i);
String name = element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();
System.out.println("名字 = " + name);
String addrss = element.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue();
System.out.println("地址 = " + addrss);
String tel = element.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue();
System.out.println("电话 = " + tel);
String fax = element.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue();
System.out.println("传真 = " + fax);
String email = element.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue();
System.out.println("邮箱 = " + email);
System.out.println("-------------------------------------");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
/*** 根结点(document):代表的是XML文档本身,是解析XML文档的入口
* 根元素结点(root):表示XML文档的根元素,它对应于XML文档的Root.
*/