為什么我的setId報錯
package handler;
import java.awt.print.Book;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXParserHandler extends DefaultHandler {
int bookIndex = 0;
? ? /*
? ? ?*用來標識解析開始?
? ? ?*/
? ? @Override
? ? public void startDocument() throws SAXException {
? ? super.startDocument();
? ? System.out.println("SAX解析開始");
? ? }
? ? /*
? ? ?*用來標識解析開始?
? ? ?*/
? ? @Override
? ? public void endDocument() throws SAXException {
? ? super.endDocument();
? ? System.out.println("SAX解析結束");
? ? }
? ? /*
? ? ?*解析xml元素?
? ? ?*/
? ? @Override
? ? public void startElement(String uri, String localName, String qName,
? ? Attributes attributes) throws SAXException {
? ? // 調用DefaultHandler類的startElement方法
? ? super.startElement(uri, localName, qName, attributes);
? ? //開始解析book元素的屬性
? ? if (qName.equals("book")){
? ? bookIndex++;
? ? ? Book book = new Book();
? ? System.out.println("===================下面開始遍歷第"+bookIndex+"本書的內容===================");
// ? ? ? ? ? String value = attributes.getValue("id");
// ? ? System.out.println("book的屬性值是:" + value);
? ? 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("節點名是:"+qName);
? ? }
? ? }
? ??
? ? @Override
? ? 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("===================結束遍歷第"+bookIndex+"本書的內容===================");
? ? }
? ? }
? ??
? ? @Override
? ? public void characters(char[] ch, int start, int length) throws SAXException {
? ? // TODO 自動生成的方法存根
? ? super.characters(ch, start, length);
? ? String value = new String(ch, start, length);
? ? if(!value.trim().equals("")){
? ? System.out.println("---節點值是:"+value);
? ? }
? ? }
? ??
}
2018-06-02
多了一個book的導入