第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

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

難度初級(jí)
時(shí)長(zhǎng) 3小時(shí) 0分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.63
323人評(píng)價(jià) 查看評(píng)價(jià)
9.9 內(nèi)容實(shí)用
9.5 簡(jiǎn)潔易懂
9.5 邏輯清晰
  • DOM4J 解析 xml 文件步驟
    1、創(chuàng)建一個(gè) SAXReader 對(duì)象
    ????SAXReader saxReader = new SAXReader();
    2、將 xml 文件加載到 SAXReader 中,并獲取 document 對(duì)象
    ????Document document = saxReader.read(fileName);
    3、通過(guò) getRootElement() 獲取根節(jié)點(diǎn)元素
    ????Element employeeRoot = document.getRootElement();
    4、通過(guò) elementIterator() 獲取子節(jié)點(diǎn)元素,返回 Iterator 返回迭代器
    ????Iterator eles = eleRoot.elementIterator();
    5、通過(guò) while 遍歷迭代器
    ????while(eles.hasNest()){
    ????Element ele = (Element)eles.next();}
    6、獲取屬性節(jié)點(diǎn)類似 JDOM 解析
    ????List<Attribute> attrs = ele.attributes();
    7、獲取元素節(jié)點(diǎn)名、值
    ????ele.getName() ele.getStringValue()/ele.getText()
    8、獲取屬性節(jié)點(diǎn)名、值
    ????ele.getName() ele.geValue()

    查看全部
  • 導(dǎo)入jar包的兩種方式:
    1.通過(guò)右鍵項(xiàng)目,選擇build Path下的Add External Archives導(dǎo)入系統(tǒng)任意路徑下的jar包。但是這種方式并沒(méi)有將jar包真正導(dǎo)入項(xiàng)目中,一旦遷移,則會(huì)丟失
    2.通過(guò)右鍵項(xiàng)目,新建lib文件夾,直接將jar包拷貝到lib文件夾下,然后再通過(guò)build Path將jar包導(dǎo)入進(jìn)來(lái)

    查看全部
  • 在JDOM中存儲(chǔ)對(duì)象
    1.創(chuàng)建一個(gè)新的book類并將其實(shí)例化
    Book bookEntity = new Book();
    2.添加節(jié)點(diǎn)屬性值到book
    if(attrName.equals("id")){
    personEntity.setId(attrValue);
    }
    3.添加子節(jié)點(diǎn)屬性值到book
    if (child.getName().equals("name")) {
    bookEntity.setName(child.getValue());
    }
    else if (child.getName().equals("author")) {
    bookEntity.setAuthor(child.getValue());
    }
    else if (child.getName().equals("year")) {
    bookEntity.setYear(child.getValue());
    }
    else if (child.getName().equals("price")) {
    bookEntity.setPrice(child.getValue());
    }
    else if (child.getName().equals("language")) {
    bookEntity.setLanguage(child.getValue());
    }

    查看全部
  • JDOM 解析時(shí)亂碼的處理步驟:
    1)修改xml文件的編碼
    2)將InputStream封裝為一個(gè)InputStreamReader,并在InputStreamReader的構(gòu)造函數(shù)中指定正確的編碼,然后將InputStreamReader傳入到SAXBuilder中就可以處理中文亂碼了
    利用代碼問(wèn)題解決局部亂碼問(wèn)題(需要利用InputStreamReader來(lái)解決)
    (1)InputStream in=new FIleStream("book.xml");
    (2)InputStreamReader isr = new InputStreamReader(in, "utf-8");
    (3)Document document = saxBuilder.build(isr);

    查看全部
  • DOM 解析
    獲取節(jié)點(diǎn)名、值:getNodeName() getNodeValue() getTextContent()
    獲取子節(jié)點(diǎn):getChildNodes() 返回 NodeList
    獲取屬性節(jié)點(diǎn):getAttributes() 返回 NamedNodeMap
    JDOM 解析
    獲取節(jié)點(diǎn)名、值:getName() getValue()
    獲取子節(jié)點(diǎn):getChildren() 返回 List<Element>
    獲取屬性節(jié)點(diǎn):getAttributes() 返回 List<Attribute>

    查看全部
  • //繼續(xù)進(jìn)行解析
    for?(Element?book?:?bookList)?{
    ?System.out.println("===開(kāi)始解析第"+(bookList.indexOf(book)+1)+"本書(shū)===");
    ?//解析book的屬性
    ?List<Attribute>?attrList?=?book.getAttributes();
    //????//知道節(jié)點(diǎn)下屬性名稱時(shí),獲取節(jié)點(diǎn)值
    //????book.getAttributeValue("id");
    ?//遍歷attrList(針對(duì)不清楚book節(jié)點(diǎn)下屬性的名字和數(shù)量)
    ?for?(Attribute?attr?:?attrList)?{
    ??//遍歷屬性名
    ??String?attrName?=?attr.getName();
    ??//遍歷屬性值
    ??String?attrValue?=?attr.getValue();
    ??System.out.println("屬性名:"+attrName+"---屬性值:"+attrValue);
    ?}
    ?System.out.println("===結(jié)束解析第"+(bookList.indexOf(book)+1)+"本書(shū)===");
    }


    查看全部
  • JDOM的解析步驟
    1.獲取SAXBuilder對(duì)象
    2.將文件加載到SAXBuilder中,并獲取Document對(duì)象
    3.通過(guò)Document對(duì)象獲取文件的根節(jié)點(diǎn)
    4.有了根節(jié)點(diǎn),通過(guò)根節(jié)點(diǎn)獲取它的孩子節(jié)點(diǎn)書(shū)的集合
    5.循環(huán)遍歷孩子節(jié)點(diǎn)集合,通過(guò)getAttributes方法獲取節(jié)點(diǎn)的屬性Attribute集合
    6.通過(guò)attribute的getName和getValue方法分別獲取屬性的名稱和值
    7.獲得book下的節(jié)點(diǎn),通過(guò)book節(jié)點(diǎn)對(duì)象的getChildren()方法獲取子節(jié)點(diǎn)的集合
    8.再通過(guò)子節(jié)點(diǎn)的getName和getValue方法獲取節(jié)點(diǎn)名和節(jié)點(diǎn)的值

    查看全部
  • JDOM解析文件步驟
    準(zhǔn)備:導(dǎo)入jar包
    1.創(chuàng)建一個(gè)SAXBuilder對(duì)象
    ????SAXBuilder saxbuilder=newSAXBuilder();
    2.創(chuàng)建輸入流,將xml文件加載到輸入流中
    ????Inputstream in=new FileInputstream("xxx.xml");
    3.通過(guò)SAXBuilder的Build方法將輸入流加載到saxb中獲取dom對(duì)象
    ????Document doc = saxbuilder.build(in);
    4.通過(guò)document對(duì)象獲取xml文件的根結(jié)點(diǎn)
    ????Element rootElement =doc.getRootElement();
    5.獲取根結(jié)點(diǎn)下的子節(jié)點(diǎn)的List集合


    JDOM 開(kāi)始解析前的準(zhǔn)備工作

    //進(jìn)行對(duì)books.xml文件的JDOM解析
    //準(zhǔn)備工作
    //1.創(chuàng)建一個(gè)SAXBuilder的對(duì)象
    SAXBuilder?saxBuilder?=?new?SAXBuilder();
    InputStream?in;
    try?{
    ?//2.創(chuàng)建一個(gè)輸入流,將xml文件加載到輸入流中來(lái)
    ?in?=?new?FileInputStream("books.xml");
    ?//3.通過(guò)saxBuilder的build方法,將輸入流加載到saxBuilder中
    ?Document?document?=?saxBuilder.build(in);
    ?//4.通過(guò)document對(duì)象獲取xml文件的根節(jié)點(diǎn)
    ?Element?rootElement?=?document.getRootElement();
    ?//5.獲取根節(jié)點(diǎn)下的子節(jié)點(diǎn)的List集合
    ?List<Element>?bookList?=?rootElement.getChildren();
    }?catch?(FileNotFoundException?e)?{
    ?e.printStackTrace();
    }?catch?(JDOMException?e)?{
    ?e.printStackTrace();
    }?catch?(IOException?e)?{
    ?e.printStackTrace();
    }


    查看全部
  • xml的SAX解析并將解析的內(nèi)容及xml結(jié)構(gòu)形式保存至Java對(duì)象中。
    SAX解析:
    1、獲取一個(gè)SAXParserFactory的實(shí)例:SAXParserFactory factory = SAXParserFactory.newInstance();
    2、通過(guò)factory獲取SAXParser實(shí)例:SAXParser parser = factory.newSAXParser();
    3、創(chuàng)建SAXParserHandler對(duì)象:SAXParserHandler handler = new SAXParserHandler();
    4、將xml文件和解析方式handler加載到SAXParser實(shí)例:parser.parse("books.xml",handler);
    解析的時(shí)候,是startElement-characters-endElement , characters解析完一個(gè)屬性,就到endElement,然后又解析一個(gè)屬性又到endElement,最后解析完全部屬性,到endElement又到startElement開(kāi)始下一個(gè)節(jié)點(diǎn)。
    ArrayList保存對(duì)象 ArrayList<Book> BookList=new ArrayList<Book>();
    BookList.add(book);book=null;后繼續(xù)遍歷
    public void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException// qName是String類型節(jié)點(diǎn)名稱;attributes是Attributes類型的實(shí)例,屬性的意思;

    查看全部
  • /**
    ??*?獲取節(jié)點(diǎn)值
    ??*/
    ?@Override
    ?public?void?characters(char[]?ch,?int?start,?int?length)?throws?SAXException?{
    ??super.characters(ch,?start,?length);
    ??String?value?=?new?String(ch,?start,?length);
    ??if(!value.trim().equals("")){
    ???System.out.println("節(jié)點(diǎn)值:"+value);
    ??}
    ?}


    查看全部
  • ?/**
    ??*?用來(lái)遍歷xml文件的開(kāi)始標(biāo)簽
    ??*/
    ?@Override
    ?public?void?startElement(String?uri,?String?localName,?String?qName,?Attributes?attributes)?throws?SAXException?{
    ??//調(diào)用DefaultHandler類的startElement()方法
    ??super.startElement(uri,?localName,?qName,?attributes);
    ??//開(kāi)始解析book元素的屬性
    ??if(qName.equals("book")){
    //???//已知book元素下屬性的名稱,根據(jù)屬性名稱獲取屬性值
    //???String?value?=?attributes.getValue("id");
    //???System.out.println("book的屬性值是:"+value);
    ???//不知道book元素下屬性的名稱以及個(gè)數(shù),如何獲取屬性名以及屬性值
    ???int?num?=?attributes.getLength();
    ???for(int?i=0;i<num;i++){
    ????System.out.print("book元素的第"+(i+1)+"個(gè)屬性名:"+attributes.getQName(i));
    ????System.out.println("--屬性值:"+attributes.getValue(i));
    ???}
    ??}
    ?}


    查看全部
  • DOM:全部讀取先
    SAX解析:通過(guò)handler處理類逐個(gè)分析每個(gè)節(jié)點(diǎn),從外到內(nèi)逐個(gè)解析。。一個(gè)一個(gè)來(lái)
    startElement, endElement(開(kāi)始標(biāo)簽解析,結(jié)束標(biāo)簽解析)

    步驟:
    1.通過(guò)SAXParserFactory的靜態(tài)newInstance()方法獲取SAXParserFactory實(shí)例factory
    SAXParserFactory factory = SAXParserFactory.newInstance();

    2.通過(guò)SAXParserFactory實(shí)例的newSAXParser()方法返回SAXParser實(shí)例parser
    SAXParser parser = factory.newSAXParser();
    parser.parse("路徑",handler類型對(duì)象);(需創(chuàng)建見(jiàn)3)

    3.創(chuàng)建一個(gè)類繼承DefaultHandler,重寫(xiě)其中一些方法進(jìn)行業(yè)務(wù)處理并創(chuàng)建這個(gè)類的實(shí)例handler
    創(chuàng)建一個(gè)package繼承DefaultHandler(。com那個(gè))
    startElement()
    用于遍歷xml的開(kāi)始標(biāo)簽
    endElement()
    遍歷xml結(jié)束標(biāo)簽
    startElement
    解析開(kāi)始
    endElement
    解析結(jié)束

    SAX解析xml步驟
    1.通過(guò)SAXParseFactory的靜態(tài)newInstance()方法獲取SAXParserFactory實(shí)例factory
    2.通過(guò)SAXParserFactory實(shí)例的newSAXParser()方法返回SAXParser實(shí)例parser
    3.創(chuàng)建一個(gè)類繼承DefaultHandle,重寫(xiě)方發(fā)進(jìn)行業(yè)務(wù)已處理創(chuàng)建這個(gè)類的實(shí)例handle

    查看全部
  • SAX解析原理

    查看全部
  • DOM解析XML文件的節(jié)點(diǎn)名與節(jié)點(diǎn)值

    //解析book節(jié)點(diǎn)的子節(jié)點(diǎn)
    NodeList?childNodes?=?book.getChildNodes();
    //遍歷childNodes獲取每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)名和節(jié)點(diǎn)值
    System.out.println("第"+(i+1)+"本書(shū)共有"+childNodes.getLength()+"個(gè)子節(jié)點(diǎn)");
    for(int?k=0;k<childNodes.getLength();k++){
    ?//區(qū)分出text類型的node以及element類型的node
    ?if(childNodes.item(k).getNodeType()==Node.ELEMENT_NODE){
    ??//獲取element類型節(jié)點(diǎn)的節(jié)點(diǎn)名
    ??System.out.print("第"+(k+1)+"個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)名:"+childNodes.item(k).getNodeName());
    ??//獲取element類型節(jié)點(diǎn)的節(jié)點(diǎn)值
    ??//getFirstChild().getNodeValue()方法把第一個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)值輸出
    ??//System.out.println("--節(jié)點(diǎn)值是"+childNodes.item(k).getFirstChild().getNodeValue());
    ??//getTextContent()方法把element類型的node中的文本全部輸出
    ??System.out.println("--節(jié)點(diǎn)值:"+childNodes.item(k).getTextContent());
    ?}
    }


    查看全部
  • DOM解析XML文件的屬性名和屬性值

    ??//創(chuàng)建一個(gè)DocumentBuilderFactory的對(duì)象
    ??DocumentBuilderFactory?dbf?=?DocumentBuilderFactory.newInstance();
    ??
    ??//創(chuàng)建一個(gè)DocumentBuilder的對(duì)象
    ??try?{
    ???//創(chuàng)建DocumentBuilder對(duì)象
    ???DocumentBuilder?db?=?dbf.newDocumentBuilder();
    ???//通過(guò)DocumentBuilder對(duì)象的parser方法加載books.xml文件到當(dāng)前項(xiàng)目下
    ???Document?document?=?db.parse("books.xml");
    ???//獲取所有book節(jié)點(diǎn)的集合
    ???NodeList?bookList?=?document.getElementsByTagName("book");
    ???//通過(guò)NodeList的getLength()方法獲取bookList的長(zhǎng)度
    ???System.out.println("一共有"+bookList.getLength()+"本書(shū)");
    ???//遍歷每一個(gè)book節(jié)點(diǎn)
    ???for(int?i=0;i<bookList.getLength();i++){
    ????//前提:不知道屬性名和屬性個(gè)數(shù)
    //????//通過(guò)item(i)方法獲取一個(gè)book節(jié)點(diǎn),NodeList的索引值從0開(kāi)始
    //????Node?book?=?bookList.item(i);
    //????//獲取book節(jié)點(diǎn)的所有屬性集合
    //????NamedNodeMap?attrs?=?book.getAttributes();
    //????System.out.println("第"+(i+1)+"本書(shū)共有"+attrs.getLength()+"個(gè)屬性");
    //????//遍歷book的屬性
    //????for(int?j=0;j<attrs.getLength();j++){
    //?????//通過(guò)item(index)方法獲取book節(jié)點(diǎn)的某一個(gè)屬性
    //?????Node?attr?=?attrs.item(j);
    //?????//獲取屬性名
    //?????System.out.print("屬性名:"+attr.getNodeName());
    //?????//獲取屬性值
    //?????System.out.println("--屬性值:"+attr.getNodeValue());
    //????}
    ????
    ????//前提:已經(jīng)知道book節(jié)點(diǎn)有且只能有1個(gè)id屬性
    ????//將book節(jié)點(diǎn)進(jìn)行強(qiáng)制類型轉(zhuǎn)換,轉(zhuǎn)換成Element類型
    ????Element?book?=?(Element)bookList.item(i);
    ????//通過(guò)getAttribute("id")方法獲取屬性值
    ????String?attrValue?=?book.getAttribute("id");
    ????System.out.println("id屬性的屬性值為"+attrValue);
    ????
    ???}
    ??}?catch?(ParserConfigurationException?e)?{
    ???e.printStackTrace();
    ??}?catch?(SAXException?e)?{
    ???e.printStackTrace();
    ??}?catch?(IOException?e)?{
    ???e.printStackTrace();
    ??}


    查看全部

舉報(bào)

0/150
提交
取消
課程須知
本課程是 Java 的中級(jí)課程,需要各位小伙伴們熟悉 Java 面向?qū)ο蟮乃枷耄⒛苁炀氄莆?Java I/O 的相關(guān)知識(shí)。對(duì)如何將內(nèi)容寫(xiě)入 XML 文件感興趣的小伙伴們,可以進(jìn)入《Java 眼中的 XML --- 文件寫(xiě)入》一探究竟
老師告訴你能學(xué)到什么?
1、XML 的基本概念 2、XML 在實(shí)際項(xiàng)目開(kāi)發(fā)中的的用途和優(yōu)點(diǎn) 3、如何通過(guò) Java 解析 XML

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買該課程,無(wú)需重復(fù)購(gòu)買,感謝您對(duì)慕課網(wǎng)的支持!