A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卞建彬 中级黑马   /  2018-11-1 21:30  /  558 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2018-11-2 10:02 编辑

day12-xml
xml
1.      xml概述
2.      xml的约束(DTD和SCHEMA)
3.      xml的解析(JSOUP)
一.xml概述(extensiable markup language
== 什么是xml: 可扩展的标记语言。
l  可扩展:标记可以随意自定义(满足语法规范)
l  标记:通俗的来讲,就是标签。比如<a>点击</a>
xml作用(存数据)
l  1.作为配置文件(比如c3p0-config.xml配置文件)
l  2.作为传输数据的格式(比如国家气象局会把天气数据通过xml格式传输其它网站)
什么是html: 超文本标记语言。
在html里面,因为html里面标签已经定义好了,不能随意书写。
html作用:展示内容给用户看的。
         ==语法规范
1.      区分大小写
2.      只允许一个根标签
3.      标签合理嵌套,合理关闭。
比如 <age>12<age/> 错误的写法,<age>12</age>正确的写法
         ==组成:
1.      文档声明:
<?xml version="1.0"encoding="utf-8"?>
文档声明的位置:第一行第一列
2.      标签
3.      属性
4.      文本
二.约束(了解)
         约束作用:规定在xml文档里面,什么可以写,什么不能书写。
三.  xml的解析(掌握)
xml解析思想:
1.      Dom解析
特点:一次性加载整个xml文件,到内存中,生成一个dom树型结构
          这个dom树保留了标签与标签之间的关系(父子)
优点:对xml里面的所有标签进行crud操作。
缺点:可能会内存溢出。
2.      Sax解析:
特点:一次只解析一行,内存中只保留了一行。
sax解析不能对xml的标签进行增删改操作。
3.      解析器(具体的解析技术)
==Dom思想具体的解析技术
1.      dom4j
2.      jaxp
3.      jdom
4.      jsoup
==Sax思想具体的解析技术
1.      sax
2.      pull(在Android开中,通常用pull解析)
== jsoup具体解析xml.
实现步骤:
步骤一:导入jsoup.jar包
步骤二:前提:加载xml文件,获取对应的document对象。
步骤三:根据document对象,得到想要操作的标签对象(Element)
               
[HTML] 纯文本查看 复制代码
 比如:Elements  es = document.getElementsByTag(“name”);[/align]List<Element>  es = document.getElementsByTag(“name”);
                            Element element = es.get(0);
                接下来:获取属性值或者获取标签体内容。
[HTML] 纯文本查看 复制代码
<name  first=”j”>tom</name>
         String  tom = element.text();
                String  attr = element.attr(“属性名称”);
== 常见的api:
1.      Jsoup工具类:
作用:解析标记性文档(xml和html),得到Document对象
常用的方法:
== parse(File f, String charsetName);
== parse(URL url, int times);
2.      Document文档对象
常用方法:获取标签对象
如:
[HTML] 纯文本查看 复制代码
[url=] Element   getElementById[/url]​(String id)
[url=]Elements[/url]   [url=]getElementsByTag[/url]​(String tagName)
Elements      getElementsByAttribute​(String key)
3.      Element 标签对象
常用方法:
== 获取子标签(子元素对象)
== 获取属性和文本的值:
n  获取属性值:  attr(“属性名称”);
n  获取文本值: text();

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马