四中最常用的XML文件解析总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XML文件学习总结

掌握了XML文件解析的常用的4中方式:DOM解析、SAX 解析、STAX解析以及DOM4j解析XML文件。

一、DOM 解析xml文件

public List parse(String url) throws Exception{

// 1、创建解析工厂

D ocumentBuilderFactory factory =

DocumentBuilderFactory.newInstance();//创建工厂是单例模式,不能直接new对象,需要调用newInstance来创建对象。

// 2、创建解析器

D ocumentBuilder builder = factory.newDocumentBuilder();

// 3、创建解析器的url

F ile file = new File(url);

// 4、得到解析后的Document对象

D ocument doncument = builder.parse(file);

// 5、通过得到节点名字得到所有同名节点的集合NodeList

N odeList nodeList = doncument.getElementsByTagName("student");

// 6、遍历NodeList集合

f or (int i = 0; i < nodeList.getLength(); i++) {

// 得到每个节点对象

Node studentNode = nodeList.item(i);

Student st = new Student();

NamedNodeMap map = studentNode.getAttributes();

//for(int j=0;j

Attr attr = (Attr)map.item(0);

//}

st.setId(Integer.parseInt(attr.getValue()));

NodeList childList = studentNode.getChildNodes();

for(int j=0;j

Node childNode = childList.item(j);

if(childNode.getNodeName().equals("name")){

st.setName(childNode.getTextContent());

}

if(childNode.getNodeName().equals("age")){

st.setAge(Integer.parseInt(childNode.getTextContent()));

}

if(childNode.getNodeName().equals("birthday")){

String str2 = childNode.getTextContent();

SimpleDateFormat sdf = new

SimpleDateFormat("yyyy-MM-dd");

Date birthday = sdf.parse(str2);

st.setBirthday(birthday);

}

}

studentList.add(st);

}

r eturn studentList;

}

Xml文件为:(studen.xml)

aaa

20

1990-10-10

bbb

30

1990-10-10

ccc

40

1990-10-10

解析后的文件为:

5 aaa 20 Wed Oct 10 00:00:00 CST 1990

2 bbb 30 Wed Oct 10 00:00:00 CST 1990

3 ccc 40 Wed Oct 10 00:00:00 CST 1990

二、Sax XML文件解析:

Sax解析XML文件是属于事件请求解析。主要是回调请求解析,来重写类中的方法来解析XML文件

public class TestSAX extends DefaultHandler

{

private Vector tagName;

private Vector tagValue;

private int step;

//方法重写的部分

// 开始解析XML文件

public void startDocument() throws SAXException

{

相关文档
最新文档