2020-11-09

技术点5:XML语言

一、

什么是

  

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

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

  3.还可以作为网络传输数据的格式(现在以JSON为主)。

二、

1、文档声明

  我们先创建一个简单 ①创建一个

 

 输入文件名:

 

 ②books.

<??><!----><books> <book id="sn7384378"><!-- book用来描述一本书,id属性描述图书的编号 -->  <name>java编程思想</name>  <author>小张</author>  <price>9.9</price> </book> <book id="sn3785738">  <name>西游记</name>  <author>吴承恩</author>  <price>99</price> </book></books>

在浏览器中可以查看到文档:

 

 

2、

  <!-- 注释内容 -->

3、元素(标签)

什么是

  

  ①名称可以含字母、数字以及其他的字符;

  ②名称不能以数字或标点符号开始;

  ③名称不能包含空格;

单标签: <标签名 属性名="属性值" />双标签: <标签名 属性名="属性值">  封装的数据 </标签名>

 

 

4、

  在标签上可以书写属性:  一个标签上可以书写多个属性。每个属性的值必须使用 引号 引起来。

5、语法规则

  ①所有的

  ②

  ③

  ④

    根元素就是顶级元素,

    没有父标签的元素,叫顶级元素。    根元素是没有父标签的顶级元素,而且是唯一一个才行。

 

   ⑤

  ⑥

  

   ⑦文本区域(CDATA 区) 

    CDATA 语法可以告诉

    CDATA 格式:

      <![CDATA[ 这里可以把你输入的字符原样显示,不会解析

 

 

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

 

 四、dom4j 解析技术(重点*****)

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

的 jar 包。 

1、Dom4j 类库的使用

 

 解压后:

 

 

2、dom4j 目录的介绍

docs 是 文 档 目 录

 

 

如何查 Dom4j 的文档

 

 

Dom4j 快速入门

 

 

lib 目录

 

 src目录是dom4j的源码目录

 

 

3、dom4j 编程步骤:

 

 

4、获取 document 对象

  创建一个 lib 目录,添加 dom4j 的 jar 包,并添加到类路径:

 

  准备需要解析的books.
<??><!----><books> <book id="sn7384378"><!-- book用来描述一本书,id属性描述图书的编号 -->  <name>java编程思想</name>  <author>小张</author>  <price>9.9</price> </book> <book id="sn3785738">  <name>西游记</name>  <author>吴承恩</author>  <price>99</price> </book></books>

  获取document对象:

public class dom4jTest { @Test public void getDocument() throws DocumentException {  //1.创建一个SAXReader对象  SAXReader reader = new SAXReader();  //2.这个对象用于读取  Document document = reader.read("src/books.);  //3.打印,查看是否创建成功  System.out.println(document); }}

效果如下:

 

 

5、遍历 标签 获取所有标签中的内容(*****重点)

 Book.java文件:

public class Book { private String id; private String name; private String author; private Double price; public Book() { } public Book(String id, String name, String author, Double price) {  this.id = id;  this.name = name;  this.author = author;  this.price = price; } 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 getAuthor() {  return author; } public void setAuthor(String author) {  this.author = author; } public Double getPrice() {  return price; } public void setPrice(Double price) {  this.price = price; } @Override public String toString() {  return "Book{" +    "id=" + id +    ", name='" + name + '\'' +    ", author='" + author + '\'' +    ", price=" + price +    '}'; }}

dom4j解析测试类:

public class dom4jTest { @Test public void readthrows DocumentException {  //1.创建一个SAXReader对象  SAXReader reader = new SAXReader();  Document document = reader.read("src/books.);  //2.通过document对象,拿到  Element rootElement = document.getRootElement();  //打印测试//  System.out.println(rootElement.as//3.通过根元素对象,获取所有的book标签对象构成的集合  List<Element> books = rootElement.elements("book");  //4.遍历books,获取每一个book对象  for (Element book : books){   //拿到book的属性值   String sn = book.attributeValue("sn");   //拿到book下面的name元素中的内容   Element name = book.element("name");   String nameText = name.getText();   //拿到book下面的author元素中的内容   Element author = book.element("author");   String authorText = author.getText();   //拿到book下面的price元素中的内容   Element price = book.element("price");   String priceText = price.getText();   //将获取到的数据封装成一个Book对象   Book b = new Book(sn, nameText, authorText, Double.parseDouble(priceText));   System.out.println(b);  } }}

效果如下:

 

原文转载:http://www.shaoqun.com/a/489604.html

盘古集团:https://www.ikjzd.com/w/1448

usps:https://www.ikjzd.com/w/513

cicpa:https://www.ikjzd.com/w/1375


一、什么是    1.用来保存数据,而且这些数据具有自我描述性;  2.它可以作为项目或者模块的配置文件;  3.还可以作为网络传输数据的格式(现在以JSON为主)。二、1、文档声明  我们先创建一个简单①创建一个输入文件名:②books.<??><!----><books><bookid="sn7384378"><!--b
优1宝贝:https://www.ikjzd.com/w/1507
amazon go:https://www.ikjzd.com/w/67
云南水目山门票多少?:http://tour.shaoqun.com/a/5050.html
河源野趣沟有漂流吗?野趣沟漂流开放了吗?:http://tour.shaoqun.com/a/29067.html
跨境电商物流有哪些?国际十大物流平台排行榜!:https://www.ikjzd.com/home/15361

No comments:

Post a Comment