亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java眼中的XML---文件讀取

難度初級
時長 3小時 0分
學習人數
綜合評分9.63
323人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.5 邏輯清晰
  • /** * 解析xml元素 */ @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // 調用父類(DefaultHandler)的startElement方法 super.startElement(uri, localName, qName, attributes); // 開始解析book元素的屬性 if (qName.equals("book")) { // //已知book元素下屬性的名稱,根據屬性名稱獲取屬性值 // String value = attributes.getValue("id"); // System.out.println("book的屬性值是:" + value); // 不知道book元素下屬性的名稱以及個數,如何獲取屬性名以及屬性值 int num = attributes.getLength(); for (int i = 0; i < num; i++) { System.out.print("book元素的第" + (i + 1) + "個屬性名是:" + attributes.getQName(i)); System.out.println("---屬性值是:" + attributes.getValue(i)); } } } 運行結果: SAX解析開始 book元素的第1個屬性名是:id---屬性值是:1 book元素的第1個屬性名是:id---屬性值是:2 SAX解析結束
    查看全部
  • /** * 解析xml元素 */ @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // 調用父類(DefaultHandler)的startElement方法 super.startElement(uri, localName, qName, attributes); // 開始解析book元素的屬性 if (qName.equals("book")) { String value = attributes.getValue("id"); System.out.println(value); } 運行結果: SAX解析開始 1 2 SAX解析結束
    查看全部
  • package com.imooc.test; import java.io.IOException; import javax.swing.text.html.parser.Parser; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import com.imooc.SAXParserHandler; public class SAXTest { public static void main(String[] args) { // 獲取一個SaxParserFactory的實例 SAXParserFactory factory = SAXParserFactory.newInstance(); // 通過foctory獲取SAXParser實例 try { SAXParser parser = factory.newSAXParser(); //創建一個對象SAXParserHandler對象 SAXParserHandler handler = new SAXParserHandler(); parser.parse("books.xml", handler); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
    查看全部
  • package com.imooc; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SAXParserHandler extends DefaultHandler { /** * 用來遍歷xml文件的開始標簽 */ @Override public void startElement(String arg0, String arg1, String arg2, Attributes arg3) throws SAXException { // TODO Auto-generated method stub super.startElement(arg0, arg1, arg2, arg3); } /** * 用來遍歷xml文件的開始標簽 */ @Override public void endElement(String arg0, String arg1, String arg2) throws SAXException { // TODO Auto-generated method stub super.endElement(arg0, arg1, arg2); } /** * 用來標識解析開始 */ @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); System.out.println("SAX解析開始"); } /** * 用來標識解析結束 */ @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); System.out.println("SAX解析結束"); } }
    查看全部
  • System.out.println(" 節點值是:" + childNodes.item(k).getTextContent() );
    查看全部
  • 運行結果: 一共有2本書! =====下面開始遍歷第1本書的內容:===== id的屬性值為:1 第1本書共有9個子節點 第2個節點的節點名是:name--節點值是:冰與火之歌 第4個節點的節點名是:author--節點值是:喬治馬丁 第6個節點的節點名是:year--節點值是:2014 第8個節點的節點名是:price--節點值是:89 ======結束遍歷第1本書的內容:===== =====下面開始遍歷第2本書的內容:===== id的屬性值為:2 第2本書共有9個子節點 第2個節點的節點名是:name--節點值是:安徒生童話 第4個節點的節點名是:year--節點值是:2004 第6個節點的節點名是:price--節點值是:77 第8個節點的節點名是:language--節點值是:English ======結束遍歷第2本書的內容:=====
    查看全部
  • Element book = (Element) bookList.item(i); // 通過getAttribute("id")方法獲取屬性值 String attrValue = book.getAttribute("id"); System.out.println("id的屬性值為:" + attrValue); // 解析book節點的子節點 NodeList childNodes = book.getChildNodes(); // 遍歷childNodes獲取每個節點的節點名和節點值 System.out.println("第" + (i + 1) + "本書共有" + childNodes.getLength() + "個子節點"); for (int k = 0; k < childNodes.getLength(); k++) { // 區分出text類型的node和element類型的node if (childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) { // 獲取了element類型節點的節點名 System.out.print("第" + (k + 1) + "個節點的節點名是:" + childNodes.item(k).getNodeName()); // 獲取了element類型節點的節點值 System.out.println("--節點值是:" + childNodes.item(k).getFirstChild() .getNodeValue()); } } System.out.println("======結束遍歷第" + (i + 1) + "本書的內容:====="); }
    查看全部
  • 常用的節點類型
    查看全部
  • 一共有2本書! =====下面開始遍歷第1本書的內容:===== id的屬性值為:1 第1本書共有9個子節點 name null author null year null price null ======結束遍歷第1本書的內容:===== =====下面開始遍歷第2本書的內容:===== id的屬性值為:2 第2本書共有9個子節點 name null year null price null language null ======結束遍歷第2本書的內容:=====
    查看全部
  • 一共有2本書! =====下面開始遍歷第1本書的內容:===== id的屬性值為:1 第1本書共有9個子節點 #text name #text author #text year #text price #text ======結束遍歷第1本書的內容:===== =====下面開始遍歷第2本書的內容:===== id的屬性值為:2 第2本書共有9個子節點 #text name #text year #text price #text language #text ======結束遍歷第2本書的內容:=====
    查看全部
  • package com.imooc.dmtest.test; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; //import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class DOMTest { public static void main(String[] args) { // 創建一個DocumentBuilderFactory.newInstance(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 創建一個DocumentBuilder對象
    查看全部
  • try { // 創建DocumentBuilder對象 DocumentBuilder db = dbf.newDocumentBuilder(); // 通過DocumentBuilder對象的parse()方法加載books.xml文件到當前目錄下 Document document = db.parse("books.xml"); // 獲取所有book節點的集合 NodeList bookList = document.getElementsByTagName("book"); // 通過nodeList的getLength()方法可以獲取bookList的長度 System.out.println("一共有" + bookList.getLength() + "本書!"); // 遍歷每一個book節點 for(int i =0;i < bookList.getLength();i++){ System.out.println("=====下面開始遍歷第" + (i + 1) + "本書的內容:====="); //通過item(i)獲取一個book節點,nodeList的索引值從0開始 // Node book = bookList.item(i); //獲取book節點的所有屬性的集合 // NamedNodeMap attrs = book.getAttributes(); // System.out.println("第" + (i+1) +"本書共有" + attrs.getLength() +"個屬性"); //遍歷book的屬性 // for(int j = 0;j < attrs.getLength();j++){ // //通過item(index)方法獲取book節點的某一個屬性 // Node attr = attrs.item(j); // 或者 attrs.item(j).getNodeName();
    查看全部
  • // // 獲取屬性名 // System.out.print("屬性名:" + attr.getNodeName()); // // 獲取屬性值 // System.out.println(" 屬性值:" + attr.getNodeValue()); // } //前提:已經知道book節點有且只有一個id屬性值 //將Book節點進行強制類型轉換,轉換成Element類型 Element book = (Element)bookList.item(i); //通過getAttribute("id")方法獲取屬性值 String attrValue = book.getAttribute("id"); System.out.println("id的屬性值為:" + attrValue); System.out.println("======結束遍歷第" + (i + 1) + "本書的內容:====="); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
    查看全部
  • 標題<?xml version="1.0" encoding="UTF-8"?> <> </>
    查看全部
    0 采集 收起 來源:初次邂逅 XML

    2018-03-22

  • kandao13:55
    查看全部

舉報

0/150
提交
取消
課程須知
本課程是 Java 的中級課程,需要各位小伙伴們熟悉 Java 面向對象的思想,并能熟練掌握 Java I/O 的相關知識。對如何將內容寫入 XML 文件感興趣的小伙伴們,可以進入《Java 眼中的 XML --- 文件寫入》一探究竟
老師告訴你能學到什么?
1、XML 的基本概念 2、XML 在實際項目開發中的的用途和優點 3、如何通過 Java 解析 XML

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!