【JavaWeb】第六章 xml
创始人
2024-03-14 02:16:02

文章目录

  • 1、XML简介
  • 2、xml语法
  • 3、xml解析
  • 4、Dom4j类库的使用
  • 5、dom4j解析xml

1、XML简介

xml是可扩展的标记性语言,xml的主要作用有:

  • 用来保存数据,而且这些数据具有自我描述性
    xml
  • 做为项目或者模块的配置文件
  • 做为网络传输数据的格式(现在以json为主)

2、xml语法

🍁xml元素



 时间简史 霍金75 JavaWeb 952799.9

xml注释:


不同于html元素(标签),xml的元素可以自己定义,命名规则:

  • 可以包含字母、数字以及其他字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字符xml(或XML、Xml)开始(现在这条不限制了)
  • 名称不能包含空格
xml也分单标签和双标签

和html一样,都有属性来提供元素的额外信息。

🍺需要注意的是:

xml文档必须有且只有一个根元素,根元素即没有父标签的元素。

根元素

🍁文本区域(CDATA区)

CDATA区里的文本内容,只是纯文本,不会被xml语法解析

语法:
举例:



3、xml解析

和html一样,xml做为可扩展的标记性语言,也可以使用w3c组织制定的dom技术来解析。

xml

document对象表示的是整个文档(可以是html,也可以是xml文档)

早期的JDK提供了两种xml解析技术:

  • DOM
  • Sax(即Simple API for XML),已过时

除了以上,还有第三方解析:

  • jdom是在dom的基础上进行了封装
  • dom4j又对jdom进行了封装

第三方解析需要使用第三方提供的类库。

4、Dom4j类库的使用

下载dom4j.jar:

①、进入此网址
②、进入网址后搜索dom4j:
download
download
download
下载到本地:
download
复制jar包到项目下,右键Add as Library…

添加dom4j.jar到IDEA

项目目录

5、dom4j解析xml

xml文件内容:


 时间简史霍金75 JavaWeb 952799.9

根据xml文件,定义Book类:

package com.code.book;import java.math.BigDecimal;public class Book {private String  sn;private String name;private double price;private String author;public Book(String sn, String name, double price, String author) {this.sn = sn;this.name = name;this.price = price;this.author = author;}public String getSn() {return sn;}public void setSn(String sn) {this.sn = sn;}public String getName() {return name;}public void setName(String name) {this.name = name;}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;}@Overridepublic String toString() {return "Book{" +"sn='" + sn + '\'' +", name='" + name + '\'' +", price=" + price +", author='" + author + '\'' +'}';}
}

定义解析成相关对象的方法:

import java.util.List;public class Dom4jTest {public static void main(String[] args) throws DocumentException {new Dom4jTest().parse();}/*** 读取books.xml文件生成book类*/public void parse() throws DocumentException {//创建一个SaxReader输入流SAXReader reader= new SAXReader();//读取books.xml文件,生成Document对象Document document = reader.read("xml/src/books.xml");//通过Document对象获取根元素Element rootElement = document.getRootElement();System.out.println(rootElement);//通过根元素获取book标签对象//element和elements方法都是通过标签名查找子元素,有多个的时候用sList bookList = rootElement.elements("book");//遍历,将每个book标签转换为Book类for(Element book : bookList){//asXML方法是把标签对象转换为标签字符串System.out.println(book.asXML());//继续用element方法取子元素Element nameElement = book.element("name");//System.out.println(nameElement.asXML());//getText方法可以获取标签中的文本内容String nameText = nameElement.getText();//也可直接使用elementText方法获取指定标签名的文本内容String bookName = book.elementText("name");String bookAuthor = book.elementText("author");String  bookPrice = book.elementText("price");//获取标签属性值String snValue = book.attributeValue("sn");//从xml中拿到数据以后,new对象Book bookObj = new Book(snValue,bookName,Double.parseDouble(bookPrice),bookAuthor);System.out.println(bookObj);}}
}

运行效果:
run

🍁相关方法提取:

  • getRootElement() 通过document对象获取根元素
  • elements(“tagName”) 通过标签名查找子元素,有多个的时候用s
  • asXML() 把标签对象转换为标签字符串
  • getText() 获取标签中的文本内容
  • elementText("tagName) 获取指定标签名的文本内容
  • attributeValue(“key”) 获取标签属性值

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...