之前给大家介绍了一下xml技术是什么,那么下面就要来给大家再介绍一下xml解析技术方面的内容,一起来看看解析技术都有哪些吧!
一、xml解析技术
具体的来说,xml解析技术有DOM、SAX、STAX这三种,下面再来具体的看看这三种技术以及它们之间的区别吧。
二、xml解析技术DOM、SAX、STAX的区别
首先的话是DOM,DOM处理大型文件的时候,它的性能会下降的非常的厉害,这个问题主要是因为DOM的树结构所导致的,这样的结构占用的内存会比较的多,并且,DOM必须在解析文件之前将整个文档装入内存,适合对XML的随机访问。
下面再来讲一下SAX,SAX不现于DOM,SAX是事件驱动型的XML解析方式,它顺序读取XML文件,不需要一次全部装载整个文件,在遇到好比文件开头,文档结束,又或者是标签开头,标签结束的时候,SAX将会触发一个事件,用户通过在其回调事件当中,写入处理代码来处理XML文件,适合对XML的顺序访问。
接着就是STAX,STAX非常的简单,Streaming API for XML (StAX)。
延伸阅读
三、用jdom解析xml文件的时,怎样解决中文问题,如何解析?
代码:
package test; import java.io.*; public class DOMTest { private String inFile = "c:people.xml"; private String outFile = "c:people.xml"; public static void main(String args[]) { new DOMTest(); } public DOMTest() { try { javax.xml.parsers.DocumentBuilder builder = javax.xml.parsers.DocumentBuilderFactory.newInstance() .newDocumentBuilder(); org.w3c.dom.Document doc = builder.newDocument(); org.w3c.dom.Element root = doc.createElement_x("老师"); org.w3c.dom.Element wang = doc.createElement_x("王"); org.w3c.dom.Element liu = doc.createElement_x("刘"); wang.appendChild(doc.createTextNode("我是王老师")); root.appendChild(wang); doc.appendChild(root); javax.xml.transform.Transformer transformer = javax.xml.transform.TransformerFactory.newInstance() .newTransformer(); transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312"); transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes"); transformer.transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(outFile)); } catch (Exception e) { System.out.println(e.getMessage()); } } }
xml解析技术就给你介绍到这里啦!这些都是在学习java编程的时候一定要掌握的基础知识,希望大家都可以好好的了解一下哦。
更多java入门知识,请继续关注奇Q工具网来进行了解吧,更多java的常见问题和知识可以为你解答分享。
推荐阅读: