真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java有幾種方式可以解析XML文件

java有幾種方式可以解析XML文件?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為天祝藏族自治企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),天祝藏族自治網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

XML 文件是 XML(可擴(kuò)展標(biāo)記語(yǔ)言)數(shù)據(jù)文件。它的格式與.HTML 文檔非常相似,但使用自定義標(biāo)記來(lái)定義對(duì)象和每個(gè)對(duì)象中的數(shù)據(jù)。XML 文件可以被認(rèn)為是基于文本的數(shù)據(jù)庫(kù)。

XML 類似于 HTML。XML 和 HTML 都包含 用于描述頁(yè)面或文件內(nèi)容的標(biāo)記符號(hào)。但是,HTML 僅描述了網(wǎng)頁(yè)的內(nèi)容(主要是文本和圖形圖像)的顯示和交互方式。例如,放置在標(biāo)記標(biāo)記內(nèi)的字母“p”將開始一個(gè)新段落。

DOM方式解析XML

Dom解析是將xml文件全部載入到內(nèi)存,組裝成一顆dom樹,然后通過(guò)節(jié)點(diǎn)以及節(jié)點(diǎn)之間的關(guān)系來(lái)解析xml文件,與平臺(tái)無(wú)關(guān),java提供的一種基礎(chǔ)的解析XML文件的API,理解較簡(jiǎn)單,但是由于整個(gè)文檔都需要載入內(nèi)存,不適用于文檔較大時(shí)。

SAX方式解析XML

基于事件驅(qū)動(dòng),逐條解析,適用于只處理xml數(shù)據(jù),不易編碼,而且很難同時(shí)訪問(wèn)同一個(gè)文檔中的多處不同數(shù)據(jù)

JDOM方式解析XML

簡(jiǎn)化與XML的交互并且比使用DOM實(shí)現(xiàn)更快,僅使用具體類而不使用接口因此簡(jiǎn)化了API,并且易于使用

DOM4j方式解析XML

JDOM的一種智能分支,功能較強(qiáng)大,建議熟練使用

xml文件



    
        cxx1
        Bob1
        stars1
        85
    
    
        cxx2
        Bob2
        stars2
        85
    
    
        cxx3
        Bob3
        stars3
        85
    

DOM方式

package com.cxx.xml;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
/**
 * @Author: cxx
 * Dom操作xml
 * @Date: 2018/5/29 20:19
 */
public class DomDemo {
    //用Element方式
    public static void element(NodeList list){
        for (int i = 0; i 

SAX方式

package com.cxx.xml;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
/**
 * @Author: cxx
 * SAX解析DOM
 * 一行一行  Handler
 * startElement
 * endElement
 * @Date: 2018/5/29 20:03
 */
public class SaxDemo {
    public static void main(String[] args) throws Exception {
        //1.或去SAXParserFactory實(shí)例
        SAXParserFactory factory = SAXParserFactory.newInstance();
        //2.獲取SAXparser實(shí)例
        SAXParser saxParser = factory.newSAXParser();
        //創(chuàng)建Handel對(duì)象
        SAXDemoHandel handel = new SAXDemoHandel();
        saxParser.parse("src/main/resources/demo.xml",handel);
    }
}
class SAXDemoHandel extends DefaultHandler {
    //遍歷xml文件開始標(biāo)簽
    @Override
    public void startDocument() throws SAXException {
        super.startDocument();
        System.out.println("sax解析開始");
    }
    //遍歷xml文件結(jié)束標(biāo)簽
    @Override
    public void endDocument() throws SAXException {
        super.endDocument();
        System.out.println("sax解析結(jié)束");
    }
    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
        super.startElement(uri, localName, qName, attributes);
        if (qName.equals("student")){
            System.out.println("============開始遍歷student=============");
            //System.out.println(attributes.getValue("rollno"));
        }
        else if (!qName.equals("student")&&!qName.equals("class")){
            System.out.print("節(jié)點(diǎn)名稱:"+qName+"----");
        }
    }
    @Override
    public void endElement(String uri, String localName, String qName) throws SAXException {
        super.endElement(uri, localName, qName);
        if (qName.equals("student")){
            System.out.println(qName+"遍歷結(jié)束");
            System.out.println("============結(jié)束遍歷student=============");
        }
    }
    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {
        super.characters(ch, start, length);
        String value = new String(ch,start,length).trim();
        if (!value.equals("")) {
            System.out.println(value);
        }
    }
}

JDOM方式



    org.jdom
    jdom
    1.1.3
package com.cxx.xml;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.List;
/**
 * @Author: cxx
 * JDom解析xml
 * 快速開發(fā)XML應(yīng)用程序。
 * 是一個(gè)開源項(xiàng)目
 * JDOM主要用來(lái)彌補(bǔ)DOM和SAX在實(shí)際應(yīng)用當(dāng)中的不足。
 * @Date: 2018/5/30 11:44
 */
public class JDomDemo {
    public static void main(String[] args) throws Exception {
        //1.創(chuàng)建SAXBuilder對(duì)象
        SAXBuilder saxBuilder = new SAXBuilder();
        //2.創(chuàng)建輸入流
        InputStream is = new FileInputStream(new File("src/main/resources/demo.xml"));
        //3.將輸入流加載到build中
        Document document = saxBuilder.build(is);
        //4.獲取根節(jié)點(diǎn)
        Element rootElement = document.getRootElement();
        //5.獲取子節(jié)點(diǎn)
        List children = rootElement.getChildren();
        for (Element child : children) {
            System.out.println("通過(guò)rollno獲取屬性值:"+child.getAttribute("rollno"));
            List attributes = child.getAttributes();
            //打印屬性
            for (Attribute attr : attributes) {
                System.out.println(attr.getName()+":"+attr.getValue());
            }
            List childrenList = child.getChildren();
            System.out.println("======獲取子節(jié)點(diǎn)-start======");
            for (Element o : childrenList) {
                System.out.println("節(jié)點(diǎn)名:"+o.getName()+"---"+"節(jié)點(diǎn)值:"+o.getValue());
            }
            System.out.println("======獲取子節(jié)點(diǎn)-end======");
        }
    }
}

DOM4J方式

 
 
     dom4j
     dom4j
     1.6.1
package com.cxx.xml;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.Iterator;
import java.util.List;

/**
 * @Author: cxx
 * Dom4j解析xml
 * @Date: 2018/5/30 12:21
 */
public class Dom4JDemo {
    public static void main(String[] args) throws Exception {
        //1.創(chuàng)建Reader對(duì)象
        SAXReader reader = new SAXReader();
        //2.加載xml
        Document document = reader.read(new File("src/main/resources/demo.xml"));
        //3.獲取根節(jié)點(diǎn)
        Element rootElement = document.getRootElement();
        Iterator iterator = rootElement.elementIterator();
        while (iterator.hasNext()){
            Element stu = (Element) iterator.next();
            List attributes = stu.attributes();
            System.out.println("======獲取屬性值======");
            for (Attribute attribute : attributes) {
                System.out.println(attribute.getValue());
            }
            System.out.println("======遍歷子節(jié)點(diǎn)======");
            Iterator iterator1 = stu.elementIterator();
            while (iterator1.hasNext()){
                Element stuChild = (Element) iterator1.next();
                System.out.println("節(jié)點(diǎn)名:"+stuChild.getName()+"---節(jié)點(diǎn)值:"+stuChild.getStringValue());
            }
        }
    }
}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


網(wǎng)站欄目:java有幾種方式可以解析XML文件
URL網(wǎng)址:http://weahome.cn/article/gipoch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部