xml技术有哪些方面?xml有哪些解析技术?

之前给大家介绍了一下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的常见问题和知识可以为你解答分享。

推荐阅读:

Java是什么意思? 学Java需要几年?

java是什么专业?java工程师学什么专业?

java入门程序编程题分享,打印学生考试等级