JavaWeb零基础入门之XML

学完后学习Java Web零基础入门之Tomcat及部署
视频链接:https://www.bilibili.com/video/BV1Y7411K7zz?p=1
参考手册:https://www.w3school.com.cn/html5/index.asp

一、XML的介绍

XML是可扩展的标记性语言

二、XML的作用

  1. 用来保存数据,且这些数据具有自我描述性
  2. 可以作为项目或者模块的配置文件
  3. 可以作为网络传输数据的格式(使用较少,目前以JSON为主)

三、XML的创建

  1. 先创建一个JAVA工程或Moudle,工程右击新建一个Directory
  2. 文件夹右击new --> File
  3. 取文件名为xxx.xml

四、XML的使用

  1. XML文件的注释格式与HTML相同:
  2. 每个xml文件第一行必须是:
  3. 注意:
    • 中不能有空格,否则报错
    • version代表版本号
    • encoding是XML的文件编码
  4. XML的标签、属性等用法与HTML一致,每个属性的值必须用引号引起来
  5. XML中的大段文字可以使用文本区域(CDATA区),此区域中的内容不会被解析,只当作纯文本,语法:
  6. XML中的元素(标签)也分成单标签和双标签
    • 单标签:<标签名 属性 = "值" 属性 = "值".../>
    • 双标签:<标签名 属性 = "值" 属性 = "值"...>文本数据或子标签
    • 但是不允许没有关闭标签
  7. XML标签必须正确的嵌套
  8. XML文档必须有根元素(没有父标签的顶级元素,而且唯一)
  9. XML中的特殊字符:
    • >特殊字符:>
    • <特殊字符:<

代码示例:


<books> 
    <book id="SN123"> 
        
        <name>时间简史name>		
        <author>霍金author>
        <price>23.6price>
    book>
    <book> 
        <name>毛泽东语录name>
        <author>毛泽东author>
        <price>10.5price>
    book>
我不会被解析]]>
books>

五、XML命名规则

  1. 名称可以含字母、数字以及其他的字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能包含空格

六、DOM4J解析技术

  1. XML文件和HTML文件都可以使用DOM技术来解析,DOM将XML文档作为一个树形结构,使 用DOM4J时需要到官网下载jar包

  2. DOM4J编程的使用

    • 在当前的Moudle下新建libs文件夹,将上述jar包导入,右键Add as Library
    • 创建一个需要解析的XML文件
    
    <books>
        <book sn="SN123">
            <name>白马啸西风name>
            <price>33.5price>
            <author>金庸author>
        book>
        <book sn="SN456">
            <name>汇编语言name>
            <price>25.9price>
            <author>王爽author>
        book>
    books>
    
  3. 创建XML文件对应的Book类

    public class Book {
           
        private String name;
        private String sn;
        private Double price;
        private String author;
        //无参、全参构造器
        public Book(String name, String sn, Double price, String author) {
           
            this.name = name;
            this.sn = sn;
            this.price = price;
            this.author = author;
        }
        public Book() {
           
        }
        //各属性的getter/setter方法
        public String getName() {
           
            return name;
        }
        public void setName(String name) {
           
            this.name = name;
        }
        public String getSn() {
           
            return sn;
        }
        public void setSn(String sn) {
           
            this.sn = sn;
        }
        public Double getPrice() {
           
            return price;
        }
        public void setPrice(Double price) {
           
            this.price = price;
        }
        public String getAuthor() {
           
            return author;
        }
        public void setAuthor(String author) {
           
            this.author = author;
        }
        //toString方法
        @Override
        public String toString() {
           
            return "Book{" +
                    "name='" + name + '\'' +
                    ", sn='" + sn + '\'' +
                    ", price=" + price +
                    ", author='" + author + '\'' +
                    '}';
        }
    }
    
  4. 遍历XML文件中所有标签的内容

    public class Test {
           
        @org.junit.Test
        public void readXMl() throws DocumentException {
           
            //1.创建SAXReader对象通过read方法读取XML文件
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read("src/books.xml");
            //2.通过Document对象的getRootElement方法得到XML文件的根元素对象
            Element rootElement = document.getRootElement();
            //3.通过Element中的elements(标签名)或element(标签名)获取当前元素下
            //  的指定子元素集合(加s)或子元素(不加s)
            List<Element> books = rootElement.elements("book");
            //4.遍历每个book标签对象,获取到book对象内的每一个子元素
            for (Element book: books) {
           
                /***********************************************************/
                //获取到book下的name元素
                Element name = book.element("name");
                //Element的getText方法获取标签中的文本内容
                String nameText = name.getText();
                /***********************************************************/
                //获取到book下的sn属性,Element的attributeValue方法可以获取属性
                String snValue = book.attributeValue("sn");
                //获取到book下的price元素,elementText方法直接获取指定标签中的文本内容
                String priceText = book.elementText("price");
                //获取到book下的author元素的内容
                String authorText = book.elementText("author");
                //使用得到的标签内容创建Book对象,并输出
                System.out.println(new Book(nameText,snValue,
                        Double.parseDouble(priceText),authorText));
            }
        }
    }
    

七、解析需要用到的jar包

由于dom4j不是sun公司的技术,而属于第三方公司的技术,我们需要使用dom4j就需要到dom4j下载jar包

链接: https://pan.baidu.com/s/1wLL4oq-jpAgGJAV4uGMY6g 密码: qo68

你可能感兴趣的:(JavaWeb学习,找工作前的自救,xml)