XML——19/11/22


Java和XML

  • 工程和源文件

  • 打开eclipse 取消缺省位置(考试要交.java文件)

  • JRE下面选择使用特定于项目的JRE(jre1.8.0_45)

为什么需要对XML进行解析

  • XML作为数据传递,需要解析。
  • XML作为配置文件,需要解析。
  • XML作为小型数据库,需要解析。

XML解析

  • dom解析:是W3C组织推荐的处理XML的一种方式
  • sax解析:

dom解析

  • DOM会把XML堪称一棵树,加载到内存中。
  • DOM特别适合对XML做CRUD(增删改查)操作。
  • DOM不适合操作比较大的XML
  • DOM会把XML中的每一个元素/属性/文本都映射成一个Node对象。

  • 树的形状:document->根标签->子标签

import javax.xml.parsers.DocumentBuilder; //parsers是解析器的意思
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;// 记住是导入W3C
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Dom1 {

    public static void main(String[] args) throws Exception{ //throws Exception 把异常都扔掉,一般不能这么处理
        //新建一个Dom解析工厂
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
        //从解析工厂中创建解析器
        DocumentBuilder dBuilder=dbf.newDocumentBuilder();
        //得到要解析文件
        Document doc=dBuilder.parse("src/1.xml");
        String version=doc.getXmlVersion();
        System.out.println("版本号"+version);
        String encoding=doc.getXmlEncoding();
        System.out.println("编码"+encoding);
        NodeList nodeList=doc.getElementsByTagName("书名");
        for(int i=0;i<nodeList.getLength();i++)
        {
            Node node=nodeList.item(i);
            String bookName=node.getTextContent();
            System.out.println(node.getNodeName()+": "+bookName);
        }
    }

}