四中最常用的XML文件解析总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XML文件学习总结
掌握了XML文件解析的常用的4中方式:DOM解析、SAX 解析、STAX解析以及DOM4j解析XML文件。
一、DOM 解析xml文件
public List
// 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) 解析后的文件为: 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 private Vector private int step; //方法重写的部分 // 开始解析XML文件 public void startDocument() throws SAXException {