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

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

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

難度初級
時長 3小時 0分
學習人數
綜合評分9.63
323人評價 查看評價
9.9 內容實用
9.5 簡潔易懂
9.5 邏輯清晰
  • //通過增強for循環進行遍歷子節點集合 for(Element person : personList){ System.out.print("======開始解析第" + personList.indexOf(person)+1 + "個人======"); //解析person的屬性 List<Attribute> attrList = person.getAttributes();//適用于我們不知道里面有多少屬性 person.getAttributeValue("id");//適用于我們知道子節點屬性的名字直接獲取其屬性值 //遍歷屬性 for(Attribute attr : attrList){ //獲取屬性名 String attrName = attr.getName(); //獲取屬性值 String attrValue = attr.getValue(); System.out.print("屬性名:" + ); } System.out.println("======結束解析第" + personList.indexOf(person)+1 + "個人======"); }
    查看全部
  • JDOM解析文件 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集合
    查看全部
  • 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); }
    查看全部
  • 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元素解析完。
    查看全部
  • SAX方式解析xml步驟 1.通過SAXParserFactory的靜態newInstance()方法獲取一個SAXParserFactory的對象。 2.通過SAXParserFactory對象的newSAXParser()方法返回一個SAXParser類的對象。 3.創建一個類繼承DefaultHandler,重寫其中的一些方法并創建類的實例. 4.通過SAXParser類的Parse(Stringname,df)方法解析xml文件,參數Stringname為路徑名,df為繼承于DefaultHandler類的實例化對象,不需要定義變量存儲返回的類型. SAX是按節點順序進行解析,遇到xml的聲明即開始解析,遇到最后一個節點的尾節點便結束解析,需要用戶自己定義一個類繼承于DefaultHandler類來解析,遇到開始標簽節點便通過startElement開始解析節點,遇到結束標簽節點便通過endElement結束解析,再遇到開始節點繼續通過startElement解析,一直循環直到xml文件最后的結束標簽節點. 5.在繼承于DefaultHandler這個類中需要重寫父類的startElement()和endElement()方法,來進行開始節點與結束節點的解析,再重寫startDocument()方法與endDocument()方法來標識解析的開始與結束.
    查看全部
  • 解析文件節點以及子節點的值 1.先獲取子節點,Node下有方法getChildNodes()來獲取某個節點的子節點的集合,返回NodeList類型. NodeList childNodes=book.getChildNodes()//包含book節點所有的子節點,兩個標簽之間的所有內容都看成是子節點. 2.通過childNodes的getLength()方法返回字點的個數(空格與換行字符看成為一個文本節點,標簽與結束標簽看成一個元素節點) 3.通過NodeList的item(i)獲取指定位置子節點的名稱返回Node類型.再用Node類型的getNodeName()方法就可以獲取節點名 Node childnode=childNodes.item(i); String name=childnode.getNodeName(); 可以通過Node類的getNodeType()來區分文本類型的node以及元素類型的node,看當前Node類型是否與Node."節點類型英文全稱"相同. if(childnode.getNodeType==Node.ELEMENT_NODE) {System.out.println(name)} 4.不能直接通過Node的getNodeValue()來獲取節點的值,因為元素節點的nodeValue的返回值為null而且標簽之間的文本被看做是該標簽的子節點.所以要用Node的getFirstChild()此時獲取的子節點為文本節點,Text節點類型的nodeValue返回值為節點內容,再getNodeValue()。 或者直接用Node的getTextContent()方法直接獲取節點值。 如果該Node節點還存在其他子節點并且有節點值<name><a>廣州大學</a>華軟學院</name>,那么用getFirstChild().getNodeValue()一樣是null,因為獲取的子節點仍然是element類型的 如果用Node的getTextContent(),一樣會把<a>元素節點當成是Content輸出。 結果為廣州大學華軟學院.
    查看全部
  • 使用Dom解析xml文件的屬性節點。 在不知道節點屬性的個數和屬性名時: 1、通過document.getElementByTagName("標簽名")獲得所有標簽名的節點,得到一個NodeList集合 2、通過NodeList.getLength()獲得集合長度,遍歷集合 3、Node node = NodeList.item(index)獲得里面的節點 4、通過NamedNodeMap attrs = node.getAttributes()獲取所有屬性集合 5、通過attrs.getLength()遍歷集合,Node attr = atrrs.item(index) 6、attr.getNodeName()獲得屬性名,attr.getNodeValue()獲取屬性值 前提已經知道book節點有且只有1個id屬性,將book節點進行強制類型轉換,轉換成element類型。 1、通過document.getElementByTagName("標簽名")獲得所有標簽名的節點,得到一個NodeList集合 2、通過NodeList.getLength()獲得集合長度,遍歷集合 3、element book=(element)bookList.item(i);//強制轉換為element類型 4、string attrValue = book.getAttribute("id");
    查看全部
  • 獲取xml文件內容的 四種解析方式:DOM SAX DOM4J JDOM DOM、SAX :java 官方方式,不需要下載jar包 DOM4J、JDOM :第三方,需要網上下載jar包 DOM使用步驟: 準備工作 1、創建一個DocumentBuilderFactory的對象 DocumentBuilderFactory dbf = DocumnetBuilderFactory.instance(); 2、創建一個DocumentBuilder的對象 DocumentBuilder db = dbf.newDocumentBuilder(); 3、通過DocumentBuilder對象的parse方法加載xml文件到當前項目 Document document = db.parse("*.xml");
    查看全部
  • 表現:以.xml為文件擴展名的文件 存儲:樹形結構 每個節點需要一個開始標簽<標簽名>和結束標簽</標簽名>。 節點名稱區分大小寫。 節點的屬性 1、可以寫在節點名稱標簽開始的后半部分<標簽名 屬性="屬性值">。 2、可以作為節點的值寫在兩個標簽中間。<標簽名>節點值</標簽名>。(節點值不用雙引號) 可以不斷拓展子節點來描述父節點包含的內容。 xml在寫正文前,要加一個聲明:<?xml version="1.0" encoding="UTF-8"?>聲明版本與編碼。 xml用于存儲集成信息,能用相同的xml文件將不同的東西聯系起來。
    查看全部
    0 采集 收起 來源:初次邂逅 XML

    2018-03-22

  • 解析books.xml文件的內容 目標:通過解析,java程序能夠獲得xml文件的所有數據。 思考:在java中是如何保留xml數據結構?------xml文件的 節點層級關系 節點關系 解析的目的:獲取節點名、節點值、屬性名、屬性值 解析的方法:DOM(官方)、SAX(官方)、DOM4J、JDOM DOM解析步驟: 1.創建一個DocumentBuilderFactory的對象。用DocumentBuilderFactory.newInstance()方法 2.創建一個DocumentBuilder的對象。---通過DocumentBuilderFactory對象去創建DocumentBuilder對象,用dbf.newDocumentBuilder()方法 捕獲異常:[try..catch] 3.通過DocumentBuilder對象的parse(String uri傳入文件名)方法解析xml文件。 db.parse("books.xml") 4.創建一個Document接收返回值---解析xml的內容。導入org.w3c.dom包
    查看全部
  • XML的作用: 1)可以實現不用應用程序之間的通信 2)可以實現不同平臺之間的通信 3)可以實現不同平臺之間數據的共享 4)可以實現信息存儲(MSN的聊天記錄)
    查看全部
    0 采集 收起 來源:初次邂逅 XML

    2017-11-09

  • DOM4J 解析 xml 文件 1、創建一個 SAXReader 對象 SAXReader saxReader = new SAXReader(); 2、將 xml 文件加載到 SAXReader 中,并獲取 document 對象 Document document = saxReader.read(fileName); 3、通過 getRootElement() 獲取根節點元素 Element employeeRoot = document.getRootElement(); 4、通過 elementIterator() 獲取子節點元素,返回 Iterator 返回迭代器 Iterator eles = eleRoot.elementIterator(); 5、通過 while 遍歷迭代器 while(eles.hasNest()){ Element ele = (Element)eles.next();} 6、獲取屬性節點類似 JDOM 解析 List<Attribute> attrs = ele.attributes(); 7、獲取元素節點名、值 ele.getName() ele.getStringValue()/ele.getText() 8、獲取屬性節點名、值 ele.getName() ele.geValue()
    查看全部
  • JDOM解析亂碼處理 1.修改xml第一行的encoding屬性 2.在代碼中處理,應用IO流知識 //創建輸入流,將XML文件加載到輸入流中 InputStream in = new FileInputStream("src/book.xml"); //使用包裝流InputStreamReader進行讀取編碼的指定 InputStreamReader isr = new InputStreamReader(in,"UTF-8");
    查看全部
  • 2-3 DOM解析xml--2 //已知屬性為“id” // Element book = (Element) booklist.item(i); // String attrvalue = book.getAttribute("id"); // System.out.println("屬性值" + attrvalue); NodeList childnode = book.getChildNodes(); System.out.println("the "+ (i+1) + "book have " + childnode.getLength() + " node" ); for (int k = 0; k < childnode.getLength(); k++) { if (childnode.item(k).getNodeType() == Node.ELEMENT_NODE) { System.out.println(childnode.item(k).getNodeName()); //System.out.println(childnode.item(k).getFirstChild().getNodeValue()); System.out.println(childnode.item(k).getTextContent()); //注意與上面這一句的差別,如果name下面又有新的子節點<name><a>"x"</a>"高等數學"</name>, getTextContent()會獲得"x""高等數學";getFirstChild().getNodeValue()會拿到null。 }}} } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace();}}}
    查看全部

舉報

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

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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