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

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

運(yùn)行結(jié)果中,value是空的,為什么?求大神解

Book類:

package com.imooc.test;

public class Book {
?private String ID;
?private String name;
?private String author;
?private String year;
?private String price;
?private String language;
?//使用get和set方法可以使得外部使用
?public String getID() {
??return ID;
?}
?public void setID(String iD) {
??ID = iD;
?}
?public String getName() {
??return name;
?}
?public void setName(String name) {
??this.name = name;
?}
?public String getAuthor() {
??return author;
?}
?public void setAuthor(String author) {
??this.author = author;
?}
?public String getYear() {
??return year;
?}
?public void setYear(String year) {
??this.year = year;
?}
?public String getPrice() {
??return price;
?}
?public void setPrice(String price) {
??this.price = price;
?}
?public String getLanguage() {
??return language;
?}
?public void setLanguage(String language) {
??this.language = language;
?}
?
}
HandlerTest 類:

package com.imooc.test;

import java.util.ArrayList;

import javax.xml.stream.events.StartElement;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

//用來(lái)遍歷xml文件的開(kāi)始標(biāo)簽
public class HandlerTest extends DefaultHandler {
?int bookIndex=0;
?String value=null;
?Book book=null;
?private ArrayList<Book> bookList=new ArrayList<Book>();//保存book對(duì)象的內(nèi)容
?public ArrayList<Book> getBookList() {
??return bookList;
?}

/*public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
??// TODO Auto-generated method stub
??super.startElement(uri, localName, qName, attributes);
?}*/
?//用來(lái)結(jié)束xml文件的標(biāo)簽
/*public void endElement(String uri, String localName, String qName) throws SAXException {
?// TODO Auto-generated method stub
?super.endElement(uri, localName, qName);
}*/
//用來(lái)標(biāo)識(shí)解析開(kāi)始
@Override
public void startDocument() throws SAXException {
?// TODO Auto-generated method stub
?System.out.println("SAX解析開(kāi)始!");
?super.startDocument();
}

/*
?* 解析xml元素
?*/
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
?// TODO Auto-generated method stub
?super.startElement(uri, localName, qName, attributes);
?if(qName.equals("book")){
??
??book=new Book();
??bookIndex++;
??? System.out.println("============下面開(kāi)始遍歷第"+bookIndex+"本書(shū)的內(nèi)容==============");
??//已知book元素下的屬性名稱,并由屬性名稱得到屬性名和屬性值
??//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(qName+"元素的第"+(i+1)+"個(gè)屬性名是:"+attributes.getQName(i));//注意兩本書(shū)中都僅有ID一個(gè)屬性
???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é)點(diǎn)名是:"+qName);
??//qName.equals("name")時(shí),就可以在book對(duì)象中setName
??
?}
?
?
}
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(""))){???? //返回字符串的副本,忽略前導(dǎo)空白和尾部空白。
??System.out.println("---節(jié)點(diǎn)值是:"+value);
?}
?
}
?
?public void endElement(String uri, String localName, String qName) throws SAXException {
??// TODO Auto-generated method stub
??super.endElement(uri, localName, qName);
??//判斷是否針對(duì)一本書(shū)已經(jīng)遍歷結(jié)束
??if(qName.equals("book")){
???bookList.add(book);
???book=null;
???System.out.println("============結(jié)束遍歷第"+bookIndex+"本書(shū)的內(nèi)容==============");
???
??}else if(qName.equals("name")){
???book.setName(value );
??}else if(qName.equals("author")){
???book.setName(value );
??}else if(qName.equals("year")){
???book.setName(value );
??????? }else if(qName.equals("price")){
???book.setName(value );?
???? }else if(qName.equals("language")){
???book.setName(value );?
???? }
?}
?//用來(lái)標(biāo)識(shí)解析結(jié)束
?@Override
?public void endDocument() throws SAXException {
??// TODO Auto-generated method stub
??System.out.println("SAX解析結(jié)束!");
??super.endDocument();
?}
}

SaxTest類:

package com.imooc.test;

import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;

public class SaxTest {

?public static void main(String[] args) {
??// TODO Auto-generated method stub
??SAXParserFactory factory=SAXParserFactory.newInstance();
??try {
???SAXParser parser=factory.newSAXParser();
???HandlerTest handler=new HandlerTest();
????? parser.parse("f:\\books.xml",handler);?
???? System.out.println("----共有"+handler.getBookList().size()+"本書(shū)-----");
???? for(Book book:handler.getBookList()){//遍歷booList中的內(nèi)容
????? System.out.println(book.getID());
????? System.out.println(book.getName());
????? System.out.println(book.getAuthor());
????? System.out.println(book.getYear());
????? System.out.println(book.getPrice());
????? System.out.println(book.getLanguage());
????? System.out.println("===========結(jié)束==========");
???? }
??
??} catch (ParserConfigurationException e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
??} catch (SAXException e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
??}?catch (IOException e) {
????// TODO Auto-generated catch block
????e.printStackTrace();
???}

?}

}
運(yùn)行結(jié)果:

SAX解析開(kāi)始!
============下面開(kāi)始遍歷第1本書(shū)的內(nèi)容==============
book元素的第1個(gè)屬性名是:id---屬性值是:1
節(jié)點(diǎn)名是:name---節(jié)點(diǎn)值是:老人與海
節(jié)點(diǎn)名是:author---節(jié)點(diǎn)值是:海明威
節(jié)點(diǎn)名是:year---節(jié)點(diǎn)值是:2015
節(jié)點(diǎn)名是:price---節(jié)點(diǎn)值是:67
============結(jié)束遍歷第1本書(shū)的內(nèi)容==============
============下面開(kāi)始遍歷第2本書(shū)的內(nèi)容==============
book元素的第1個(gè)屬性名是:id---屬性值是:2
節(jié)點(diǎn)名是:name---節(jié)點(diǎn)值是:看見(jiàn)
節(jié)點(diǎn)名是:language---節(jié)點(diǎn)值是:Chinses
節(jié)點(diǎn)名是:author---節(jié)點(diǎn)值是:柴靜
節(jié)點(diǎn)名是:year---節(jié)點(diǎn)值是:2014
節(jié)點(diǎn)名是:price---節(jié)點(diǎn)值是:87
============結(jié)束遍歷第2本書(shū)的內(nèi)容==============
SAX解析結(jié)束!
----共有2本書(shū)-----
1
67
null
null
null
null
===========結(jié)束==========
2
87
null
null
null
null
===========結(jié)束==========

正在回答

1 回答

?if(qName.equals("book")){
???bookList.add(book);
???book=null;
???System.out.println("============結(jié)束遍歷第"+bookIndex+"本書(shū)的內(nèi)容==============");
???
??}else if(qName.equals("name")){
???book.setName(value );
??}else if(qName.equals("author")){
???book.setName(value );
??}else if(qName.equals("year")){
???book.setName(value );
??????? }else if(qName.equals("price")){
???book.setName(value );?
???? }else if(qName.equals("language")){
???book.setName(value );?
???? }



name是setName,author是setAuthor,下面的也是,要對(duì)應(yīng)

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕粉3170877 提問(wèn)者

我自己找了幾遍都沒(méi)找到,原來(lái)是寫(xiě)錯(cuò)了,還是要?jiǎng)e人來(lái)糾正!哈哈,謝謝~
2016-08-08 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

運(yùn)行結(jié)果中,value是空的,為什么?求大神解

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

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

幫助反饋 APP下載

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

公眾號(hào)

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