软件交流培训:Extensible Markup Language 可扩展标记语言

  概念:Extensible Markup Language 可扩展标记语言

  xml是可扩展的,通过自定义标签。

  用于存储数据,主要是存储配置,在网络中传输。

  xml的标签都是自定义的,html的标签都是预定义的。语法严格。

  后缀名是xml

  内容第一行必须是文档声明:例: ?xml version= 1.0 ?

  一个xml文件有且仅有一个根标签。

  属性值必须用引号包裹。

  标签必须关闭

  标签名称区分大小写

  组成部分:

  1.文档声明:

  格式: ?xml 属性列表 ?

  属性:

  version:版本号,必须的属性

  encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值: ISO

  standalone:是否独立。yes独立,no不独立

  2.指令:结合css

  ?xml-stylesheet type= text/css href= a.css ?

  3.标签:规则:

  可以包含字母、数字以及其他字符

  不能以数字或标点符号开头

  不能以xml开头

  不能包含空格

  4.属性:

  id属性值唯一

       叩丁狼软件交流培训:Extensible Markup Language 可扩展标记语言

  5.文本:

  CDATA:在该区域中的数据会被原样显示 格式: ![CDATA[数据]]

  约束:规定xml文档的书写规则

  作为框架的使用者(程序员):

  1.能够在xml中引入约束

  2.能够读懂约束

  分类:DTD:简单的约束技术

  schema:复杂的约束技术

  解析:读取xml文档

  方式:

  DOM:一次性把文档读取到内存中,形成一颗dom树

  操作方便,可以对文档进行增删改查操作,占内存

  SAX:逐行读取,基于事件驱动

  不占内存,只能读,不能增删改

  常见解析器:

  JAXP:SUN公司提供的解析器,支持dom和sax

  DOM4J:优秀

  Jsoup:Java的HTML解析器,可以直接解析某个url地址的html内容,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据

  PULL:Android的内置解析器,sax方式

  Jsoup使用步骤:

  1.导入jar包

  2.获取Document对象

  3.获取对应的标签Element对象

  4.获取数据

  代码例:

  [Java] 纯文本查看 复制代码

  //2.1获取student.xml的path String path = JsoupDemo1.class.getClassLoader().getResource( student.xml ).getPath(); //2.2解析xml文档,加载文档进内存,获取dom树--- Document Document document = Jsoup.parse(new File(path), utf-8 ); //3.获取元素对象 Element Elements elements = document.getElementsByTag( name ); System.out.println(elements.size()); //3.1获取第一个name的Element对象 Element element = elements.get(0); //3.2获取数据 String name = element.text(); System.out.println(name);

  1,Jsoup工具类:parse方法

  * parse?(File in, String charsetName):解析xml或html文件的。

  * parse?(String html):解析xml或html字符串

  * parse?(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象

  2.Document、Element,获取element对象

  *getElementById(String id)

  getElementsByTag(String tagName)

  getElementsByAttribute(String key)

  getElementsByAttributeValue(String key, String value)

  3.Element对象

  String attr(String key)根据属性名获取属性值

  String text()获取文本内容

  String html()获取标签体的所有内容,包括标签

  * 快捷查询方式:

  1. selector:选择器

  * 使用的方法:Elements select?(String cssQuery)

  * 语法:参考Selector类中定义的语法

  2. XPath:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言

  * 使用Jsoup的Xpath需要额外导入jar包。

  * 查询w3cshool参考手册,使用xpath的语法完成查询

  * 代码:

  [Java] 纯文本查看 复制代码

  //1.获取student.xml的path String path = JsoupDemo6.class.getClassLoader().getResource( student.xml ).getPath(); //2.获取Document对象 Document document = Jsoup.parse(new File(path), utf-8 ); //3.根据document对象,创建JXDocument对象 JXDocument jxDocument = new JXDocument(document); //4.结合xpath语法查询 //4.1查询所有student标签 List JXNode jxNodes = jxDocument.selN( //student ); for (JXNode jxNode : jxNodes) { System.out.println(jxNode); } System.out.println( -------------------- ); //4.2查询所有student标签下的name标签 List JXNode jxNodes2 = jxDocument.selN( //student/name ); for (JXNode jxNode : jxNodes2) { System.out.println(jxNode); } System.out.println( -------------------- ); //4.3查询student标签下带有id属性的name标签 List JXNode jxNodes3 = jxDocument.selN( //student/name[@id] ); for (JXNode jxNode : jxNodes3) { System.out.println(jxNode); } System.out.println( -------------------- ); //4.4查询student标签下带有id属性的name标签 并且id属性值为itcast List JXNode jxNodes4 = jxDocument.selN( //student/name[@id= itcast ] ); for (JXNode jxNode : jxNodes4) { System.out.println(jxNode); }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值