java -- XMl解析示例

public class TestDOMBook {
    public static void main(String[] args) {
        // 1、得到DOM解析器的工厂实例
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        try {
            // 2、从DOM工厂获得DOM解析器
            DocumentBuilder db = dbf.newDocumentBuilder();
            // 3、解析XML文档,得到一个Document,即DOM树
            Document doc = db.parse("e:/book.xml");
            // 4、得到所有book节点列表信息
            NodeList petList = doc.getElementsByTagName("book");
            // 5、轮循书本信息
            System.out.println("XML文件中book的初始化信息:");
            for (int i = 0; i < petList.getLength(); i++) {
                // 得到book元素
                Element book = (Element) petList.item(i);
                // 得到book元素下的id属性的值
                String strId = book.getAttributeNode("id").getNodeValue();
                System.out.println("ID:" + strId);
                // 得到book下的title子元素节点下的子文本节点的值
                String strTitle = book.getElementsByTagName("title").item(0)
                        .getFirstChild().getNodeValue();
                // 得到book下的title子元素节点
                Element title = (Element) book.getElementsByTagName("title")
                        .item(0);
                // 得到title元素节点的tid属性节点的值
                String strTid = title.getAttributeNode("tid").getNodeValue();
                String strAuthor = book.getElementsByTagName("author").item(0)
                        .getFirstChild().getNodeValue();
                String strYear = book.getElementsByTagName("year").item(0)
                        .getFirstChild().getNodeValue();
                String strPrice = book.getElementsByTagName("price").item(0)
                        .getFirstChild().getNodeValue();
                System.out.println("标题:" + strTitle);
                System.out.println("标题ID:" + strTid);
                System.out.println("作者:" + strAuthor);
                System.out.println("出版日期:" + strYear);
                System.out.println("价格:" + strPrice);
            }
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

结果:

XML文件中book的初始化信息:

ID:1

标题:Harry Potter

标题ID:1

作者:J K Rowling

出版日期:2005

价格:29.99

ID:2

标题:Harry Potter

标题ID:2

作者:J K Rowling

出版日期:2006

价格:39.99

ID:3

标题:明朝那些事儿

标题ID:1

作者:当年明月

出版日期:2009

价格:19.99


你可能感兴趣的:(xml解析)