java语言处理xml文档
xml可扩展标记语言,是一个非常有用的描述结构化信息的技术。xml语言与html语言虽然都源于SGML语言,但二者存在本质上的不同,主要体现在如下几方面:
1)与html不同,xml是大小写敏感的;
2)在html中,有些标签的结束标签是可以省略的,但是在xml中是绝不可以省略的;
3)在xml中,只有一个标签而且没有相对应的结束标签的元素必须以 / 结尾;
4)在xml中属性值必须用引号括起来,而在html中,引号可有可无。
5)html中属性名可以没有对应的属性值,而在xml中属性名必须有属性值。
java读写xml文档,可以通过DOM解析,DOM读取xml的步骤如下:
1)创建DocumentBuilderFactory的实例
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstanse();
2)创建DocumentBuilder实例
DocumentBuilder builder = factory.newDocumentBuilder();
3)创建Document实例,参数为要解析的文件输入流
Document document = builder.parse(input);
4)通过document获取元素对象,即DOM树的根节点
Element element = document.getDocumentElement();
5)然后逐次获取element的节点Node对象极其属性,直至读取完整个DOM树。
当然还可以用java实现写xml文档的功能,步骤如下:
1)创建DocumentBuilderFactory的实例
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstanse();
2)创建DocumentBuilder实例
DocumentBuilder builder = factory.newDocumentBuilder();
3)创建一颗空的DOM树
Document document = builder.builder.newDocument();
4)一次创建根节点极其子节点、属性等,添加到DOM树中
5)创建TransformerFactory实例
TransformerFactory tff = TransformerFactory.newInstance();
6)创建Transformer实例
Transformer tf = tff.newTransformer();
7)创建DOMsource实例,参数即为之前创建好的DOM树
DOMSource ds = new DOMSource(document);
8)设置xml文档的一些输出参数,如编码格式等
tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
9)创建StreamResult对象,参数为指定的文件输出流
StreamResult sr = new StreamResult(out);
10)调用相关方法将创建好的文档输出
tf.transform(ds,sr);
至此,java对xml文档的简单读写可以实现了。