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

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

關(guān)于SAXParserHandler類中startElement方法中else if(!qName.equals("book") && !qName.equals("bookstore"))的問題

/**

??*?解析xml元素

??*/

?@Override

?public?void?startElement(String?uri,?String?localName,?String?qName,

???Attributes?attributes)?throws?SAXException?{

??//調(diào)用DefaultHandler類的startElement方法

??super.startElement(uri,?localName,?qName,?attributes);

??if?(qName.equals("book"))?{

???bookIndex++;

???//創(chuàng)建一個book對象

???book?=?new?Book();

???//開始解析book元素的屬性

???System.out.println("======================開始遍歷某一本書的內(nèi)容=================");

//???//已知book元素下屬性的名稱,根據(jù)屬性名稱獲取屬性值

//???String?value?=?attributes.getValue("id");

//???System.out.println("book的屬性值是:"?+?value);

???//不知道book元素下屬性的名稱以及個數(shù),如何獲取屬性名以及屬性值

???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));

????if?(attributes.getQName(i).equals("id"))?{

?????book.setId(attributes.getValue(i));

????}

???}

??}

??else?if?(!qName.equals("book")?&&?!qName.equals("bookstore"))?{

???System.out.print("節(jié)點名是:"?+?qName?+?"---");

??}

?}

這里為什么要加加一個else if (!qName.equals("book") && !qName.equals("bookstore"))來判斷? 如果qName的值是“book”,前面已經(jīng)有相關(guān)的處理代碼了。如果qName的值是“bookstore”程序應(yīng)該會自動調(diào)用endDocument()方法。既然用不到else if()里面的判斷語句,為什么不直接寫個else ,后面接著輸出qName為節(jié)點名就好了?求各位指點

正在回答

1 回答

最開頭的<bookstore>標簽也會進入startDocument()方法,所以要排除掉;

另外,后面的結(jié)束標簽</bookstore>才會進入endDocument()方法

0 回復 有任何疑惑可以回復我~
#1

慕圣0830664 提問者

非常感謝!
2017-05-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關(guān)于SAXParserHandler類中startElement方法中else if(!qName.equals("book") && !qName.equals("bookstore"))的問題

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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