XML笔记及知识要点

XML

在这里插入图片描述

1.Xml简介:

1.什么是 xml? xml是可扩展的标记性语言

2.xml的作用:

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

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

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

3、xml语法具体的部分以及步骤

1.文档声明:

我们先创建一个简单 XML文件,用来描述图书信息。

1)创建一个 xml文件的具体方法

在这里插入图片描述

<?xml  version="1.0"  encoding="UTF-8"?> <>里面表示xml的声明。
<!-- xml声明 version是版本的意思encoding是xml文件本身编码    -->
而且这个<?xml要连在一起写,否则会有报错
          属性
version             是xml版本号
encoding            是xml的文件编码
standalone="yes/no" 表示这个 xml文件是否是独立的 xml文件

具体的实例(以一个books的信息为主要的实例,用于存储信息):

<?xml  version="1.0"  encoding="UTF-8"?>
<!--  xml声明  version是版本的意思
<books>  <!--这是  xml注释 books表示多个图书信息   -->
  <book  id="SN123123413241">  <!--  book标签描述一本图书
id属性描述的是图书的编号
-->
   <name>java编程思想</name>   <!--  name标签描述的是图书的信息      -->
     <author>华仔</author>
<!--  author单词是作者的意思,描述图书作者    -->
<!--  price单词是价格,描述的是图书的价格    -->
<price>9.9</price>
</book>
<book  id="SN12341235123"> <!--  book标签描述一本图书
id属性描述的是图书的编号
-->
<name>葵花宝典</name>   <!--  name标签描述的是图书的信息      -->
<author>班长</author>  <!--  author单词是作者的意思,描述图书作者    -->
<price>5.5</price><!--  price单词是价格,描述的是图书的价格     -->
</book>
</books>

2.元素(标签)
html标签:
格式:<标签名>封装的数据</标签名>
单标签: <标签名 />
<br />换行   <hr />水平线
双标签  <标签名>封装的数据</标签名>
标签名大小写不敏感
标签有属性,有基本属性和事件属性
标签要闭合(不闭合,html中不报错。但我们要养成良好的书写习惯,闭合标签
1.什么是xml元素:
元素是指从开始标签到结束标签的内容:例如:<title>java编程思想</title>元素我们可以简单的理解为是标签。Element 翻译元素
2.XML命名规则

XML元素必须遵循以下命名规则:

1.名称可以含字母、数字以及其他的字符(中文也可以)

例如:

<book  id="SN213412341">  <!--描述一本书  -->

<author>班导</author>  <!--描述书的作者信息  -->

<name>java编程思想</name>  <!--书名  -->

<price>9.9</price>  <!--价格  -->

</book>
2.名称不能以数字或者标点符号开始
3.名称不能以字符 “xml”(或者 XML、Xml )开始(它是可以的,这个可以忽略)
4.名称不能包含空格
3.xml中的元素(标签)

xml中的标签(元素)也分为单标签和双标签)

具体的格式:

单标签
格式:  <标签名属性=”值”属性=”值”      ......
/>
双标签
格式:<标签名属性=”值”属性=”值”         ......>文本数据或子标签</标签名>
4.xml属性

xml的标签属性和 html的标签属性是非常类似的,属性可以提供元素的额外信息
在标签上可以书写属性:
一个标签上可以书写多个属性。每个属性的值必须使用 引号引起来。的规则和标签的书写规则一致。

5.xml的语法规则:
1.所有 XML元素都须有关闭标签(也就是闭合)
2.XML标签对大小写敏感
3.XML必须正确地嵌套
4.XML文档必须有根元素
根元素就是顶级元素,
没有父标签的元素,叫顶级元素。
根元素是没有父标签的顶级元素,而且是唯一一个才行。
5.XML的属性值须加引号
6.XML中的特殊字符(需要使用特殊字符,则就需要转换,不能直接使用)
7.文本区域(CDATA区)
CDATA语法可以告诉 xml解析器,我 CDATA里的文本内容,只是纯文本,不需要xml语法解析
CDATA格式:
<![CDATA[这里可以把你输入的字符原样显示,不会解析,只会原样显示里面的内容  xml  ]]>

4.xml解析技术介绍

xml可扩展的标记语言。
不管是 html文件还是 xml文件它们都是标记型文档,都可以使用  w3c组织制定的  dom技术来解析。
 document对象表示的是整个文档(可以是  html文档,也可以是 xml文档)
早期 JDK为我们提供了两种  xml解析技术 DOM和Sax简介(已经过时,但我们需要知道这两种技术)
dom解析技术是W3C组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。
Java对  dom技术解析标记也做了实现。
sun公司在  JDK5版本对  dom解析技术进行升级:SAX(SimpleAPIforXML)
SAX解析,它跟  W3C制定的解析不太一样。它是以类似事件机制通过回调告诉用户当前正在解析的内容。
它是一行一行的读取 xml文件进行解析的。不会创建大量的 dom对象。
所以它在解析 xml的时候,在内存的使用上。和性能上。都优于Dom解析。
第三方的解析:
jdom在  dom基础上进行了封装、
dom4j又对   jdom进行了封装。
pull主要用在  Android手机开发,是在跟   sax非常类似都是事件机制解析  xml文件。
这个 Dom4j它是第三方的解析技术。我们需要使用第三方给我们提供好的类库才可以解析  ml文件。

5.dom4j解析技术(重点**********)

1.Dom4j类库的使用

1.先将do4mj的压缩包解压到本地目录下
2.找到dom4j-1.6.1.jar这个jar包
3.将dom4j-1.6.1.jar添加到与src同级的lib包下,同时并添加到类库

需要解析的xml文件:

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

<books>

<book  sn="SN12341232">

<name>辟邪剑谱</name>

<price>9.9</price>

<author>班主任</author>

</book>

<book  sn="SN12341231">

<name>葵花宝典</name>

<price>99.99</price>

<author>班长</author>

</book>

</books>

具体的步骤:

//解析获取 Document对象的代码
//第一步,先创建 SaxReader对象。这个对象,用于读取  xml文件,并创建   Document
/*
*  dom4j获取  Documet对象
*/
public  void  getDocument()  throws DocumentException  {
//要创建一个  Document对象,需要我们先创建一个  SAXReader对象
SAXReader  reader  =  new SAXReader();
//这个对象用于读取  xml文件,然后返回一个  Document。
Document  document  =  reader.read("src/books.xml");
//打印到控制台,看看是否创建成功
System.out.println(document);
}

遍历标签,获取标签中的所有内容:

/*需要分四步操作:
第一步,通过创建 SAXReader对象。来读取  xml文件,获取 Document对象
第二步,通过 Document对象。拿到  XML的根元素对象
第三步,通过根元素对象。获取所有的 book标签对象
第四小,遍历每个 book标签对象。然后获取到  book标签对象内的每一个元素,再通过 getText()方法拿到起始标签和结
束标签之间的文本内容
*/
/*
*读取  xml文件中的内容
*/
@Test
public  void  readXML()  throws  DocumentException {
//
第一步,通过创建 SAXReader对象。来读取  xml文件,获取 Document对象
SAXReader  reader  =  new SAXReader();
Document  document  =  reader.read("src/books.xml");
//第二步,通过   Document对象。拿到 XML的根元素对象
Element  root  =  document.getRootElement();
//打印测试
//  Element.asXML()它将当前元素转换成为  String对象
//  System.out.println(  root.asXML()  );
第三步,通过根元素对象。获取所有的 book标签对象
//  Element.elements(标签名)它可以拿到当前元素下的指定的子元素的集合
List<Element>  books  =  root.elements("book");
//第四小步,遍历每个 book标签对象。然后获取到  book标签对象内的每一个元素,
for  (Element  book  : books)  {

//测试
//  System.out.println(book.asXML());
//拿到   book下面的 name元素对象
Element  nameElement  =  book.element("name");
//拿到   book下面的 price元素对象
Element  priceElement  =  book.element("price");
//拿到   book下面的 author元素对象
Element  authorElement  =  book.element("author");
//再通过  getText()方法拿到起始标签和结束标签之间的文本内容
System.out.println("书名"  +  nameElement.getText()  +  " ,价格:"
+  priceElement.getText()  +  ",作者:"   +  authorElement.getText());
  }
}

打印的内容:

book下面的 price元素对象
Element priceElement = book.element(“price”);
//拿到 book下面的 author元素对象
Element authorElement = book.element(“author”);
//再通过 getText()方法拿到起始标签和结束标签之间的文本内容
System.out.println(“书名” + nameElement.getText() + " ,价格:"

  • priceElement.getText() + “,作者:” + authorElement.getText());
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值