XML笔记

2022-11-18 17:09:13 浏览数 (1)

XML:可扩展的标记性语言。 XML的主要作用: 1、用来保存数据; 2、可以做为项目或者模块的配置文件; 3、做为网络传输数据的格式(JSON现在为主)。 XML的注释和HTML的一样。 XML命名规则: 1、名称可以包含字母、数字以及其他的字符; 2、名称不能以数字或标点符号开始; 3、名称不能包含空格。 XML标签也分单、双标签。 XML的属性: 一个标签上可以书写多个属性。每个属性的值必须用引号括起来。 XML对大小写敏感,且标签要闭合。标签必须正确嵌套。XML文档必须要有根元素。 XML里面的文本区域:(CDATA区) 区里的内容只是纯文本。 格式: <![CDATA[....纯文本,原样显示字符....]]>

早期JDK提供了两种XML解析技术DOM和Sax DOM解析技术是W3C组织定的 SAX解析,是一行一行读取xml文件进行解析,不会创建大量dom对象。 第三方的解析: jdom在dom基础上进行了封装 dom4j又对jdom进行了封装 pull主要用于Android手机开发,是在跟sax非常类似都是事件机制解析xml文件

dom4j解析技术: 这个Dom4j是第三方的解析技术,我们需要第三方给我们提供好的类库才可以解析xml文件。这个jar包网上都有

要记得把这个jar包添加到类路径下。

代码语言:javascript复制
<?xml version="1.0" encoding="utf-8" ?> <!--xml的声明-->
<books>
    <book>
        <name>计算机网络</name>
        <price>70</price>
        <出版社>机械工业出版社</出版社>
    </book>
    <book>
        <name>操作系统导论</name>
        <price>60</price>
        <出版社>人民邮电出版社</出版社>
    </book>
</books>

使用dom4j技术解析该xml文件:

代码语言:javascript复制
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Dom4jTest {
    public static void main(String[] args) throws Exception {
        //1.读取books.xml文件
        SAXReader reader = new SAXReader();
        Document document = reader.read("XML/src/books.xml");
        //System.out.println(document);
        //2.通过Document对象来获取根元素
        Element rootElement = document.getRootElement();
       // System.out.println(rootElement);
        //System.out.println(rootElement.asXML()); //asXML()把标签对象转换为标签字符串
        //3.通过根元素获取标签对象
        List<Element> books = rootElement.elements("book");
        //4.遍历,处理每个book标签转换为Book类
        for(Element book : books) {
            //System.out.println(book.asXML());
            Element nameElement = book.element("name");
            Element elementPrice = book.element("price");
            Element elementPress = book.element("出版社");
            //getText()可以获取标签中的文本内容
            System.out.println("书名:"    nameElement.getText()   " , 价格:"
                      elementPrice.getText()   ", 出版社:"   elementPress.getText());
        }
    }
}

注:如果是高版本的JDK运行时会出现警告,但是不影响运行。

解决方案是把项目JDK降低到1.8及以下。

0 人点赞