java读写xml文件的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB
1. DOM(Document Object Model)
此方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点。因此非常消耗系统性能,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML 规范。每个结点都可以扩展的基于 Node 的接口,就多态性的观点来讲,它是优秀的,但是在Java 语言中的应用不方便,并且可读性不强。
实例:
Java代码
1.import javax.xml.parsers.*;
2.//XML解析器接口
3.import org.w3c.dom.*;
4.//XML的DOM实现
5.import org.apache.crimson.tree.XmlDocument;
6.//写XML文件要用到
7.DocumentBuilderFactory factory = DocumentBuilderFactory.newInst
ance();
8. //允许名字空间
9. factory.setNamespaceAware(true);
10. //允许验证
11. factory.setValidating(true);
12. //获得DocumentBuilder的一个实例
13.try {
14. DocumentBuilder builder = factory.newDocumentBuilder();
15.} catch (ParserConfigurationException pce) {
16.System.err.println(pce);
17.// 出异常时输出异常信息,然后退出,下同
18.System.exit(1);
19.}
20.//解析文档,并获得一个Document实例。
21.try {
22.Document doc = builder.parse(fileURI);
23.} catch (DOMException dom) {
24.System.err.println(dom.getMessage());
25.System.exit(1);
26.} catch (IOException ioe) {
27.System.err.println(ioe);
28.System.exit(1);
29.}
30.//获得根节点StuInfo
31.Element elmtStuInfo = doc.getDocumentElement();
32.//得到所有student节点
33. NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS(
34. strNamespace, "student")
;
35.for (……){
36. //当前student节点元素
37. Element elmtStudent = (Element)nlStudent.item(i);
38. NodeList nlCurrent = elmtStudent.getElementsB
yTagNameNS(
39. strNamespace, "name");
40.}
对于读取得方法其实是很简单的,写入xml文件也是一样不复杂。
Java代码
1.DocumentBuilderFactory factory = DocumentBuilderFactory.newInst
ance();
2.DocumentBuilder builder = null;
3.try {
4.builder = factory .newDocumentBuilder();
5.} catch (ParserConfigurationException pce) {
6.System.err.println(pce);
7.System.exit(1);
8.}
9.Document doc = null;
10.doc = builder .newDocument();
11.//下面是建立XML文档内容的过程,
12.//先建立根元素"学生花名册"
13.Element root = doc.createElement("学生花名册");
14.//根元素添加上文档
15.doc.appendChild(root);
16.//建立"学生"元素,添加到根元素
17.Element student = doc.createElement("学生");
18.student.setAttribute("性别", studentBean.getSex());
19.root.appendChild(student);
20.//建立"姓名"元素,添加到学生下面,下同
21.Element name = doc.createElement("姓名");
22.student.appendChild(name);
23.Text tName = doc.createTextNode(studentBean.getName());