日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java sax xml文件解析_java解析xml文件-DOM/SAX

發布時間:2025/3/8 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java sax xml文件解析_java解析xml文件-DOM/SAX 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java解析xml文件的兩種方式

1:DOM

原理:把整個文檔加載到內存,轉化成dom樹,之后應用程序可以隨機的訪問dom樹的任何數據,靈活 快,但消耗內存

一個簡單的xml

使用java解析

//builder工廠

DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();try{//builder

DocumentBuilder builder =factory.newDocumentBuilder();//解析xml文檔

Document doc = builder.parse("src/xmls/demo.xml");//根據標簽名得到元素

NodeList list = doc.getElementsByTagName("student");//因為只有一個student 所以獲取第一個//Node node=list.item(0);//element繼承自node

Element student = (Element) list.item(0);//第一個元素//姓名

Element name = (Element) student.getElementsByTagName("姓名").item(0);

String nameValue=name.getFirstChild().getNodeValue();//年齡

Element age = (Element) student.getElementsByTagName("age").item(0);

String ageValue=age.getFirstChild().getNodeValue();

System.out.println(ageValue);//性別

Element sex = (Element) student.getElementsByTagName("sex").item(0);

String sexValue=sex.getFirstChild().getNodeValue();

String attib= sex.getAttribute("id");

System.out.println(sexValue);

System.out.println(attib);

}catch(Exception e) {

e.printStackTrace();

}

節點 屬性 文本 都可以拿到了,復雜的xml也是使用這么幾個方法。

2. sax

只能read 不能edit 相對于DOM方式來說 不會占用太多的內存, 對xml文檔進行順序掃描,有事件發生

輸出結果:

public class SaxDemo extends DefaultHandler {

@Override

public void startDocument() throws SAXException {

System.out.println("文檔開始。。。");

}

@Override

public void endDocument() throws SAXException {

System.out.println("文檔結束。。。");

}

@Override

public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {

System.out.println("元素開始。。"+qName);

}

@Override

public void endElement(String uri, String localName, String qName) throws SAXException {

System.out.println("元素結束。。。"+qName);

}

/**

* 文本結點

* @param ch

* @param start

* @param length

* @throws SAXException

*/

@Override

public void characters(char[] ch, int start, int length) throws SAXException {

System.out.println(new String(ch,start,length));

}

public static void main(String[] args) {

SAXParserFactory factory =SAXParserFactory.newInstance();

SAXParser parser= null;

try {

parser = factory.newSAXParser();

try {

parser.parse("src/xmls/demo.xml",new SaxDemo());

} catch (IOException e) {

e.printStackTrace();

}

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

}

}

總結

以上是生活随笔為你收集整理的java sax xml文件解析_java解析xml文件-DOM/SAX的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。