XML


什么是XML

xml是可扩展的标记性语言


xml的作用

xml的主要作用有

1、用来保存数据,而且这些数据具有自我描述性

2、它还可以作为项目或者模块的配置文件

3、它还可以作为网络传输数据的格式(现在以json为主)

第一个xml文件

<?xml version="1.0" encoding="utf-8"?>
<books>
    <book sn="123">
        <name>时间简史</name>
        <author>霍金</author>
        <price>10</price>
    </book>
</books>

XML语法

1、XML的注释和HTML一样

2、XML的元素和HTML的标签一样

3、XML命名规则

  • 名称可以含字母、数字及其他的字符(可以用中文)
  • 名称不能以数字或标点符号开始
  • 名称不能包含空格
  • 分单标签和双标签,必须闭合
  • 标签的属性需要用引号引起来
  • xml标签对大小写敏感
  • xml必须正确的嵌套
  • xml文档必须有根元素,且只能有一个,根元素就是没有父标签的元素
  • xml中的特殊字符,比如>,需要写成 &gt;

用dom4j解析xml

package LWB;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

public class dom4jTest {
    public static void main(String[] args) throws DocumentException {
        SAXReader saxReader=new SAXReader();
        Document document=saxReader.read("src/books.xml");
        System.out.println(document);
    }
}

package LWB;

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 DocumentException {
        //读取books.xml文件
        SAXReader reader =new SAXReader();
        Document document=reader.read("src/books.xml");
        //通过document对象获取根元素
        Element rootElement =document.getRootElement();
//        System.out.println(rootElement);
        //3 通过根元素获取book标签对象
        //element()和elements()都是通过标签名查找子元素
        List<Element> books=rootElement.elements("book");
        for(Element book:books){
            //asXML()把标签对象,转换为标签字符串
            Element nameElement=book.element("name");
            //getText()可以获取标签中的文本内容
            String nameText=nameElement.getText();
            System.out.println(nameText);
            String priceText=book.elementText("price");
            System.out.println(priceText);
            String authorText=book.elementText("author");
            System.out.println(authorText);
            String snValue=book.attributeValue("sn");
            System.out.println(snValue);
            //输出对象时,会调用对象的toString函数
            System.out.println(new book(snValue,nameText,Double.parseDouble(priceText),authorText));
        }

    }
}

原文地址:https://www.cnblogs.com/fate-/p/14736299.html