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

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

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

難度初級
時長 3小時 0分
學習人數
綜合評分9.63
323人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.5 邏輯清晰
  • xml的SAX解析并 將解析的內容及xml結構形式保存至Java對象中。 SAX解析: 1、獲取一個SAXParserFactory的實例:SAXParserFactory factory = SAXParserFactory.newInstance(); 2、通過factory獲取SAXParser實例:SAXParser parser = factory.newSAXParser(); 3、創建SAXParserHandler對象:SAXParserHandler handler = new SAXParserHandler(); 4、將xml文件和解析方式handler加載到SAXParser實例:parser.parse("books.xml",handler); 解析的時候,是startElement-characters-endElement , characters解析完一個屬性,就到endElement,然后又解析一個屬性又到endElement,最后解析完全部屬性,到endElement又到startElement開始下一個節點。 ArrayList保存對象 ArrayList<Book> BookList=new ArrayList<Book>(); BookList.add(book);book=null;后繼續遍歷 public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException// qName是String類型節點名稱;attributes是Attributes類型的實例,屬性的意思;
    查看全部
  • SAX解析XML的速度比DOM的塊, SAX的解析XML的解析器,需要重寫startElement()開始解析的方法and endElemaent()方法 結束解析的方法and characters()方法 重寫charaters()方法時,讀取節點值(去除空的節點值) if(!value.trim().equals("")){ System.out.println(value); }
    查看全部
  • handler重寫: 獲取xml解析開始、結束 startDocument() endDocument() 獲取xml的標簽 開始:startElement(String uri, String localName, String qName,Attributes attributes) 獲取屬性名:attributes.getQName(i);獲取屬性值:attributes.getValue(i) 結束:endElement(String uri, String localName, String qName) 獲取節點值 characters(char[] ch, int start, int length) String value = new String(ch, start, length); if(qName.equals("book")) 會一直將book元素解析完。
    查看全部
  • JUnit是Java提供的一種進行單元測試的自動化工具。測試方法可以寫在任意類中的任意位置。使用JUnit可以沒有main()入口進行測試。 DOM4J在靈活性和對復雜xml的支持上都要強于DOM DOM4J的應用范圍非常的廣,例如在三大框架的Hibernate中是使用DOM4J的方式解析文件的。 DOM是w3c組織提供的一個官方解析方式,在一定程度上是有所應用的。
    查看全部
  • 導入XML文件 導入Jar包 ---------------------------------------DOM4J解析節點屬性--------------------------------------- //創建SAXReader的對象reader SAXReader reader = new SAXReader(); //通過reader的read加載person.xml文件 Document document = reader.read(new File("person.xml")); //通過document對象獲取根節點persons Element persons = document.getRootElement(); //通過element對象的elementIterator方法獲取迭代器 Iterator it = persons.getIterator(); //遍歷迭代器,獲取根節點中的信息(persons)適用于我們不知道節點的名稱時 while(it.hasNext()){ Element person = (Element)it.next(); //獲取person的屬性名和屬性值 List<Attribute> personAttrs = person.attributes(); //由于是List類型所以我們使用for each()循環進行遍歷 for(Attribute attr : personAttrs){ System.out.println("節點名:" + attr.getName() +?。?-節點值:" + attr.getValue()); } } ---------------------------注意代碼中import時導入的是dom4j下的--------------------------------
    查看全部
  • ---------------------------------關于JDOM使用過程中JAR包的引用--------------------------------- 我們的項目中直接配置build path指定的jar包如果是在我們PC的硬盤某個路徑,那么在日后導出項目時候,項目中是沒有jar包的。 我們只能在我們的項目下建立一個lib文件夾將所需jar包復制進去,再進行build path的配置即可。
    查看全部
  • // 防止亂碼問題 InputStream is = new FileInputStream(fileName); InputStreamReader isr = new InputStreamReader(is,"UTF-8"); Document doc = saxb.build(isr);
    查看全部
  • 1、使用 foreach 遍歷子元素節點時,獲取索引使用 indexOf + 1 for(Element ele : eles) eles.indexOf(ele)+1 2、獲取元素的屬性節點 List<Attribute> attrs = ele.getAttributes(); 如果知道屬性名稱通過 getAttributeValue("屬性名") 獲取屬性值
    查看全部
  • JDOM解析文件 1、創建一個 SAXBuilder 對象 SAXBuilder saxb = new SAXBuilder(); 2、創建輸入流,將 xml 文件加載到輸入流中(拋出 FileNotFoundException) InputStream is = new FileInputStream("xxx.xml"); 3、通過 SAXBuilder 的 build 方法將輸入流加載到 saxb 中獲取 dom 對象 (拋出 JDOMException IOException) Document doc = saxb.build(is); 或者直接將 xml 文件加載 Document doc = saxb.build("xxx.xml");
    查看全部
  • DOM4J是第三方提供的解析XML方法,需要jdom-2.0.5.jar包(最新) 步驟: 1、創建SAXBuilder對象 SAXBuilder saxBuilder = new SAXBuilder(); 2、創建一個輸入流將XML加載到輸入流中 InputStream in = new FileInputStream("src/person.xml"); 3、將xml加載到文件輸入輸入流中 Document document = saxBuilder.build(in); 4、根據Document對象獲取xml中的根節點 Element rootEle = document.getRootElement(); 5、獲取根節點下的子節點的list集合 List<Element> personList = rootEle.getChildren();
    查看全部
  • 四種解析方式對比: 1.基礎方法:DOM,SAX(不需要導入jar包,java提供的) DOM平臺無關的官方解析方式; SAX是java提供的基于事件驅動的解析方式 2.擴展方法:JDOM,DOM4J(在基礎方法上擴展出來的,只有java中能夠使用的解析方法 3.DOM:一次性加載形成DOM樹;對內存性能要求較高 優點:形成了樹結構,直觀好理解,代碼更容易編寫; 解析過程中樹結構保留在內存中,方便修改; 缺點:當xml文件較大時,對內存消耗比較大,容易影響解析性能并造成內存溢出 4.SAX:事件驅動,對內存耗費較??; 優點:適用于只需要處理xml中數據; 缺點:不易編碼;很難同時訪問同一個xml中的多處不同數據
    查看全部
  • xml的SAX解析并將解析的內容及xml結構形式保存至Java對象中。 SAX解析: 1、獲取一個SAXParserFactory的實例:SAXParserFactory factory = SAXParserFactory.newInstance(); 2、通過factory獲取SAXParser實例:SAXParser parser = factory.newSAXParser(); 3、創建SAXParserHandler對象:SAXParserHandler handler = new SAXParserHandler(); 4、將xml文件和解析方式handler加載到SAXParser實例:parser.parse("books.xml",handler);
    查看全部
  • 重寫charaters()方法時,讀取節點值(去除空的節點值) if(!value.trim().equals("")){ System.out.println(value); }
    查看全部
  • handler重寫: 獲取xml解析開始、結束 startDocument() endDocument() 獲取xml的標簽 開始:startElement(String uri, String localName, String qName,Attributes attributes) 獲取屬性名:attributes.getQName(i);獲取屬性值:attributes.getValue(i) 結束:endElement(String uri, String localName, String qName) 獲取節點值 characters(char[] ch, int start, int length) String value = new String(ch, start, length);
    查看全部
  • AX解析的原理: 通過自己創建的Handler類,去逐個分析遇到的節點;Handler走到第一行的XML申明時,就開始分析節點了。 遇到bookstore節點就可以進行處理了,但是bookstore沒有屬性所以就不對其做更多的處理了。 遇到book節點時,book節點是擁有的id屬性,會通過startElement來處理book節點的id屬性 遇到book節點的子節點name節點,它沒有必要處理name的屬性,但name是個ElementNode類型的節點,它會獲取name的節點名和節點值,執行完name節點后會通過endElement方法執行name節點的結束標簽 SAX解析XML的步驟: 1、通過SAXParserFactory的靜態newInstance()方法獲取SAXParserFactory實例factory 2、通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser 3、創建一個類繼承DefaultHandler,重寫其中的一些方法進行業務處理并創建這個類的實例handler
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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