XML文件

  • XML配置文件:即可扩展标记语言
  • 标记语言:即标签描述数据的一种语言
  • 可扩展;即标签名字可以自定义
  • 作用:用于进行储存数据和传输数据以及作为软件配置文件而存在
  • XML语法规则: 后缀名为XML文件
  • 解析XML文件
public class Student {
    private String id;

    private String name;

    private String age;

    public Student() {
    }

    public Student(String id, String name, String age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}
public class Test01 {
    //解析xml文件,并将数据封装到集合中
    public static void main(String[] args) throws DocumentException {

        //先获取整体文档对象
        //1.先创建对象SAXReader
        SAXReader saxReader = new SAXReader();

        //调用saxReader对象read方法,传入file类型,参数为路径,即得到整体文档对象
        Document document = saxReader.read(new File("D:\\develop\\IDEA2019\\IDEA\\java_web\\itzhangsong-inherit\\src\\com\\songzhang\\packag1\\XML\\Test01.xml"));

        //创建集合
        ArrayList<Student> list = new ArrayList<>();

        //获取整体文档的根标签
        Element rootElement = document.getRootElement();

        //elements()空参代表将根标签下所有字标签存入集合1返回
//        List elements = rootElement.elements();
//        for (Object element : elements) {
//            System.out.println(element);
//        }

        //elements("Student")有参构造将指定字标签通过集合返回
        //返回的集合要指定泛型,否则会出现错误
        List<Element> student = rootElement.elements("Student");


        //获取每一个字标签
        for (Element element : student) {

            //调用attribute方法获取属性
            Attribute id = element.attribute("id");
            //调用getValue获取属性值
            String value = id.getValue();

            //element方法获取字标签下的标签
            Element name = element.element("name");

            //调用getText()方法获取标签内的内容
            String text = name.getText();

            //element方法获取字标签下的标签
            Element age = element.element("age");

            //调用getText()方法获取标签内的内容
            String text1 = name.getText();

            Student stu = new Student(value,text,text1);
            list.add(stu);
        }
        for (Student student1 : list) {
            System.out.println(student1);
        }
    }

}


  • 文档约束:即用来限制XML文件中标签和属性
  • DTD约束:后缀名为dtd
  • 有子标签为复杂元素,反之简单元素
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Students SYSTEM 'Test01.dtd'
<!--文档说明-->
<Students>
<!--    代表根标签   -->
<!--    xml文件当做配置文件用来描述数据-->
    <Student id="1">
<!--        描述学生信息-->
        <name>李四</name>
        <age>66</age>
        <sex></sex>
    </Student>

    <Student id="2">
        <!-- 描述学生信息-->
        <name>王五</name>
        <age>55</age>
        <sex></sex>
    </Student>

</Stu
<!ELEMENT Students (Student+) >
<!ELEMENT Student (name,age,sex) >
<!ELEMENT name (#PCDATA) >
<!ELEMENT age (#PCDATA) >
<!ELEMENT sex (#PCDATA) >
<!ATTLIST Student id CDATA #REQUIRED>

  • schema约束文件本身也是一个xml文件,同时也被其他文件约束着 后缀名为xsd
<?xml version="1.0" encoding="UTF-8" ?>
<!--  根标签-->
<persons
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="java"
    xsi:schemaLocation="java Test02.xsd"


>
<!--    字标签-->
    <person id="001">
<!--        简单元素-->
        <name>李清照</name>
        <age>33</age>
    </person>
</pers

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="java"
        elementFormDefault="qualified"
>

<element name="persons">
<!--    element定义标签元素,name写根标签-->

    <complexType>
        <sequence>
            <element name="person">
<!--      complexType 代表是复杂标签,每一个复杂元素,都要写-->
<!--                sequence  代表按照顺序写,-->
<!--                <complexType> <sequence> 复杂元素固定格式-->
                <complexType>
                    <sequence>
                        <element name="name" type="string"></element>
                        <element name="age" type="string"></element>
                    </sequence>
                    <attribute name="id" type="string" use="required"></attribute>
                </complexType>
            </element>
        </sequence>
    </complexType>
</element>


</schema>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值