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

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

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

難度初級
時長 3小時 0分
學習人數
綜合評分9.63
323人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.5 邏輯清晰
  • 應用 DOM4J 解析節點屬性 public static void main(String[] args) { // 解析books.xml文件 // 創建SAXReader的對象reader SAXReader reader = new SAXReader(); try { // 通過reader對象的read方法加載books.xml文件,獲取docuemnt對象。 Document document = reader.read(new File("src/res/books.xml")); // 通過document對象獲取根節點bookstore Element bookStore = document.getRootElement(); // 通過element對象的elementIterator方法獲取迭代器 Iterator it = bookStore.elementIterator(); // 遍歷迭代器,獲取根節點中的信息(書籍) while (it.hasNext()) { System.out.println("=====開始遍歷某一本書====="); Element book = (Element) it.next(); // 獲取book的屬性名以及 屬性值 List<Attribute> bookAttrs = book.attributes(); for (Attribute attr : bookAttrs) { System.out.println("屬性名:" + attr.getName() + "--屬性值:" + attr.getValue()); } Ps:- org.dom4j.io
    查看全部
  • ---------------------------------在JDOM中存儲Person對象--------------------------------- Person personEntity = new Person(); if(attrName.equals("id")){ personEntity.setId(attrValue); } if(child.getName().equals("name")){ personEntity.setName(child.getValue()); }else if(child.getName().equals("sex")){ personEntity.setSex(child.getValue()); }else if{ ... } private static ArrayList<Person> arrayList = new ArrayList(); arrayList.add(personEntity); //將personEntity設置為空,讓垃圾回收機制回收 personEntity = null;
    查看全部
  • JDOM 解析時亂碼的處理 兩種方法可以解決亂碼問題, 1:修改xml文件中的編碼格式, 2:在解析中使用inputstreamreader()指定編碼格式 // 2.創建一個輸入流,將xml文件加載到輸入流中 in = new FileInputStream("src/res/books.xml"); InputStreamReader isr = new InputStreamReader(in, "UTF-8"); // 3.通過saxBuilder的build方法,將輸入流加載到saxBuilder中 Document document = saxBuilder.build(isr); ... Ps:注意先看下xml文件encoding是否修改編碼方式后可以正常顯示,若還是亂碼,則考慮使用代碼的方式將其轉換。 處理中文亂碼步驟: 1)修改xml文件的編碼 2)將InputStream封裝為一個InputStreamReader,并在InputStreamReader的構造函數中指定正確的編碼,然后將InputStreamReader傳入到SAXBuilder中就可以處理中文亂碼了 利用代碼問題解決局部亂碼問題(需要利用InputStreamReader來解決) (1)InputStream in=new FIleStream("book.xml"); (2)InputStreamReader isr = new InputStreamReader(in, "utf-8"); (3)Document document = saxBuilder.build(isr);
    查看全部
  • DOM 解析 獲取節點名、值:getNodeName() getNodeValue() getTextContent() 獲取子節點:getChildNodes() 返回 NodeList 獲取屬性節點:getAttributes() 返回 NamedNodeMap JDOM 解析 獲取節點名、值:getName() getValue() 獲取子節點:getChildren() 返回 List<Element> 獲取屬性節點:getAttributes() 返回 List<Attribute> 應用 JDOM 解析子節點的名和值 System.out.println("屬性名:" + attrName + "----屬性值:" + attrValue); // 對book節點的子節點的節點名以及節點值的遍歷 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("節點名:" + child.getName() + "----節點值:" + child.getValue());
    查看全部
  • 應用 JDOM 解析節點屬性 List<Element> bookList = rootElement.getChildren(); // 繼續進行解析 for (Element book : bookList) { Book bookEntity = new Book(); System.out.println("======開始解析第" + (bookList.indexOf(book) + 1) + "書======"); // 解析book的屬性集合 List<Attribute> attrList = book.getAttributes(); // //知道節點下屬性名稱時,獲取節點值 // book.getAttributeValue("id"); // 遍歷attrList(針對不清楚book節點下屬性的名字及數量) for (Attribute attr : attrList) { // 獲取屬性名 String attrName = attr.getName(); // 獲取屬性值 String attrValue = attr.getValue(); System.out.println("屬性名:" + attrName + "----屬性值:" + attrValue); System.out.println("======結束解析第" + (bookList.indexOf(book) + 1) + "書======"); ... Ps:foreach類型和List<>配合使用,類型foreach類型取得是<?>里面的類型,表示每一項的元素。
    查看全部
  • JDOM解析文件 導入jar包 1.創建一個SAXBuilder對象 SAXBuilder saxbuilder=newSAXBuilder(); 2.創建輸入流,將xml文件加載到輸入流中(拋出FileNotFoundException) Inputstream in=new FileInputstream("xxx.xml"); 3.通過SAXBuilder的Build方法將輸入流加載到saxb中獲取dom對象 Document doc = saxbuilder.build(in); 4.通過document對象獲取xml文件的根結點 Element rootElement =doc.getRootElement(); 5.獲取根結點下的子節點的List集合 JDOM 開始解析前的準備工作 public static void main(String[] args) { // 進行對books.xml文件的JDOM解析 // 準備工作 // 1.創建一個SAXBuilder的對象 SAXBuilder saxBuilder = new SAXBuilder(); InputStream in; try { // 2.創建一個輸入流,將xml文件加載到輸入流中 in = new FileInputStream("src/res/books.xml");//放在包下可以直接用“/”來分隔 // 3.通過saxBuilder的build方法,將輸入流加載到saxBuilder中 Document document = saxBuilder.build(in); // 4.通過document對象獲取xml文件的根節點 Element rootElement = document.getRootElement(); // 5.獲取根節點下的子節點的List集合 List<Element> bookList = rootElement.getChildren();
    查看全部
  • 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()方法時,String(byte[] bytes,int offset,int length)的構造方法進行數組的傳遞 再去除解析時多余空格 if(!value.trim().equals("")){ System.out.println(value); } 使用 SAX 解析 XML 文件的節點名和節點間文本 startElement方法——String qName(第三個參數):節點名 startElement方法——Attributes attributes(第四個參數):節點名的屬性操作 characters方法——char[] ch(第一個參數):xml整個文本內容,所以需截取想要的內容 如圖代碼+以下代碼 public void endElement(String uri, String localName, String qName) throws SAXException { //調用DefaultHandler類的endElement方法 super.endElement(uri, localName, qName); //判斷是否針對一本書已經遍歷結束 if (qName.equals("book")) { System.out.println("======================結束遍歷某一本書的內容================="); } } public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub super.characters(ch, start, length); value = new String(ch, start, length); if (!value.trim().equals("")) { System.out.println("節點值是:" + value); } }
    查看全部
  • 解析xml元素:<br> 1. 重寫DefalutHandler的實現類對象的startElement()方法<br> 2. 在startElement()方法中,先調用DefaultHanlder 的startElement()方法<br> 3. 已知節點的屬性名的情況下<br> if(qname.equals("book")){<br> String value = attributes.getValue("id");<br> }<br> 4.不知節點的屬性名的情況下<br> 獲取屬性長度<br> int length=attributes.getLength();<br> 獲取屬性名和屬性值 for(int i=0;i<length;i++){ System.out.print(attributes.getQname(index)+attributes.getValue(index)); }
    查看全部
  • SAX方式解析xml步驟
    查看全部
  • DOM:全部讀取先 SAX解析:通過handler處理類逐個分析每個節點,從外到內逐個解析。。一個一個來 startElement, endElement(開始標簽解析,結束標簽解析) 步驟: 1.通過SAXParserFactory的靜態newInstance()方法獲取SAXParserFactory實例factory SAXParserFactory factory = SAXParserFactory.newInstance(); 2.通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser SAXParser parser = factory.newSAXParser(); parser.parse("路徑",handler類型對象);(需創建見3) 3.創建一個類繼承DefaultHandler,重寫其中一些方法進行業務處理并創建這個類的實例handler 創建一個package繼承DefaultHandler(。com那個) startElement() 用于遍歷xml的開始標簽 endElement() 遍歷xml結束標簽 startElement 解析開始 endElement 解析結束 SAX解析xml步驟 1.通過SAXParseFactory的靜態newInstance()方法獲取SAXParserFactory實例factory 2.通過SAXParserFactory實例的newSAXParser()方法返回SAXParser實例parser 3.創建一個類繼承DefaultHandle,重寫方發進行業務已處理創建這個類的實例handle
    查看全部
  • SAXParserHandler模版+執行原理順序 I-1 public class SAXParserHandler extends DefaultHandler { /** * 用來標識解析開始 */ public void startDocument() throws SAXException { super.startDocument(); System.out.println("SAX解析開始"); } /** * 解析xml元素節點開始 */ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); System.out.println("解析xml元素開始"); } /** * 處理文本內容(獲取的是整個XML文本內容) */ public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); System.out.println("文本處理中..."); } /* 解析xml元素節點結束 */ public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); System.out.println("解析xml元素結束"); } /** * 用來標識解析結束 */ public void endDocument() throws SAXException { super.endDocument(); System.out.println("SAX解析結束"); }
    查看全部
  • JUnit是Java提供的一種進行單元測試的自動化工具。測試方法可以寫在任意類中的任意位置。使用JUnit可以沒有main()入口進行測試。 DOM4J在靈活性和對復雜xml的支持上都要強于DOM DOM4J的應用范圍非常的廣,例如在三大框架的Hibernate中是使用DOM4J的方式解析文件的。 DOM是w3c組織提供的一個官方解析方式,在一定程度上是有所應用的。 當XML文件比較大的時候,會發現DOM4J比較好用 1.JUnit:Java提供的單元測試;@Test注解;采用JUnit不需要程序入口main方法 2.性能測試結果:幾kB的xml文件;建議使用DOM4J解析 DOM-33ms SAX-6ms JDOM-69ms DOM4J-45ms 工程右鍵build path --Add library--JUnit單元測試 --version:JUnit4 DOM:33,SAX:6 JDOM:69;DOM4J:45 DOM 有可能溢出 多使用DOM4J
    查看全部
  • xml文件解析sax>dom>dom4j>jdom
    查看全部
  • SAX解析圖解。
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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