Java中的xml

package com.imooc.jdomtest;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import java.util.ArrayList;
import java.util.List;

import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

import com.imooc.entity.Book;

public class JDOMTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        //private static ArrayList<Book> booksList =new ArrayList<Book>();
        ArrayList<Book> booksList=new ArrayList<Book>();
        // 进行对book.xml文件的JDOM解析
        // 准备工作
        // 1.创建一个SAXBuilder对象
        SAXBuilder saxBuilder = new SAXBuilder();
        InputStream in;
        try {
            // 2.创建一个输入流,将xml文件加载到输入流中
            in = new FileInputStream("src/res/books.xml");
            // 3.通过saxBuilder的build方法,将输入流加载到saxBuilder中
            Document document = saxBuilder.build(in);
            // 4.通过document对象获取xml文件的根节点
            Element rootelement = document.getRootElement();
            // 5.获取根节点下的子节点的List集合
            List<Element> bookList = rootelement.getChildren();
            // 继续进行解析
            for (Element book : bookList) {
                Book bookEntity= new Book();
                System.out.println("=========开始解析第"
                        + (bookList.indexOf(book) + 1) + "书==========");
                // 解析book的属性
                List<Attribute> attrList = book.getAttributes();
                // 知道节点下属性名称时,获取节点值
                // book.getAttributeValue("id");
                // 遍历attrList(针对不清楚book节点下属性的名字及数量)
                for (Attribute attr : attrList) {
                    // 获取属性名
                    String attrName = attr.getName();
                    // 获取属性值
                    String attrValue = attr.getValue();
                    System.out.println("属性名:" + attrName + "------属性值:"
                            + attrValue);
                    
                    if (attrName.equals("id")) {
                        bookEntity.setId(attrValue);
                    }
                }
                // 对book节点的子节点的节点名以及节点值
                List<Element> bookChilds = book.getChildren();
                for (Element child : bookChilds) {
                    System.out.println("节点名:" + child.getName() + "----节点值:"
                            + child.getValue());
                    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());
                    }
                }
                System.out.println("=========结束解析第"
                        + (bookList.indexOf(book) + 1) + "书==========");
                /*booksList.add(bookEntity);
                bookEntity=null;*/
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

这里

 //private static ArrayList<Book> booksList =new ArrayList<Book>();
        ArrayList<Book> booksList=new ArrayList<Book>();

为什么一加上

private

就报错

human123
浏览 1415回答 2
2回答

产品经理不是经理

private修饰的是成员变量和成员方法的,方法里的局部变量是不能加修饰符的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java