XML学习

XML概念:

Extensible Markup Language(可扩展标记语言)

​ 编写xml就是编写标签,扩展名为.xml

​ 例如:

在这里插入图片描述

XML和HTML的比较:
相同:

​ 都是编写标签

不同:

​ xml没有预定义标签,html存在大量预定义的标签

​ xml重在保存与传输数据,html用于显示信息

XML的用途
  • Java程序的配置描述文件

​ 例如:
在这里插入图片描述

  • 用于保存程序产生的数据

  • 网络间的数据传输

    例如:

    在这里插入图片描述

XML文档结构

  • 第一行必须是XML声明:

    说明XML文档的基本信息,包括版本号与字符集,写在XML第一行

    例如:
    在这里插入图片描述
    书写XML文档例子:

  • 有且只有一个根节点

  • XML标签的书写规则和HTML相同

XML语义约束

两种定义方式:DTD和XML Schema

  1. DTD:文档类型定义,是一种简单易用的语义约束方式,扩展名为.dtd

利用<!ELEMENT>标签:

在这里插入图片描述

在这里插入图片描述
XML Schema:

提供了数据类型、格式限定、数据范围等特性,是W3C标准,后缀.xsd

<?xml version="1.0" encoding="utf-8"?>

XML文档解析

在这里插入图片描述

DOM4j

DOM4j用于解析XML,会将XML是为Document对象,XML标签被Dom4j定义为Element(元素)对象

XML读取

要解析XMl首先用SAXReader 得到一个reader对象:SAXReader reader=new SAXReader();

将XML解析后以“树”的形式保存在内存中:Document document=reader.read(file);

获得根节点:Element root=document.getRootElement();

例子:

package com.Dom4j;

import java.util.List;

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

public class XmlReader {
public void xmlread() {
//这里获取hr.xml文件的路径
String file=“E:/java web/XMLLearn/hr.xml”;
//SAXReader类是读取XML文件的核心类,用于将XML解析后以“树”的形式保存在内存中
SAXReader reader=new SAXReader();
try {
Document document=reader.read(file);
//获取XML文档的根节点,在本例中是hr标签
Element root=document.getRootElement();
//elements获取指定标签的集合
List employees=root.elements(“employee”);
for(Element employee : employees) {
//element获取唯一的子节点对象
Element name=employee.element(“name”);
//getText获取标签的文本
String emName = name.getText();
System.out.println(emName);
System.out.println(employee.elementText(“age”));
System.out.println(employee.elementText(“salary”));
Element department=employee.element(“department”);
System.out.println(department.elementText(“dname”));
System.out.println(department.elementText(“address”));
Attribute att = employee.attribute(“no”);
System.out.println(att.getText());
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
XmlReader hrread = new XmlReader();
hrread.xmlread();
}
}

XML更新

package com.Dom4j;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.List;

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

public class XmlWriter {
public void writerXml() {
String file = “E:/java web/XMLLearn/hr.xml”;
SAXReader reader = new SAXReader();
try {
Document document = reader.read(file);
Element root = document.getRootElement();
Element employee = root.addElement(“employee”);
employee.addAttribute(“no”, “1234”);
Element name = employee.addElement(“name”);
name.setText(“李铁柱”);
Element age = employee.addElement(“age”);
age.setText(“40”);
employee.addElement(“salary”).setText(“2500”);
Element department = employee.addElement(“department”);
department.addElement(“dname”).setText(“宁德师范”);
department.addElement(“address”).setText(“4号楼”);
Writer writer = new OutputStreamWriter(new FileOutputStream(file), “UTF-8”);
document.write(writer);
writer.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static void main(String[] args) {
XmlWriter writer = new XmlWriter();
writer.writerXml();
}

}

XPath路径表达式

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值