XML(Extensible Markup Language可拓展标记语言)
2.功能存储数据,一般用于做配置文件,或者在网络中传输(通常用json文件)
3.XML和HTML区别- xml标签是自定义的,所以需要有约束文件。xml的语法严格,html语法松散xml主要用于存储数据,html展示数据
文档后缀名xml第一行是文档声明xml中有且仅有一个根标签属性值要用(单双)引号引起来区分大小写 5.快速入门
6.主要部分 1.文档声明 1.格式zhangsan 23male
lisi 24female
2.属性列表
version:版本号,一般用1.0encoding:编码方式。standalone:是否独立,yes 或者 no用于表示是否依赖其他文件 2.属性
id值是唯一的
2.约束:规定XML文档的书写诡诈 1.要求能够在xml中引入约束文档能够简单读懂约束文档 2.分类 1.DTD:document Type Define,简单的文档类型约束技术 1.将约束规则引入xml文件中两种方式
本地:网络: 2.快速入门
]>2.Schema:略微复杂的xml文档约束技术张三 12男 李四&msg; 12男
3.解析 1.方式tom 18male
DOM
将标记语言一次性加载进内存形成DOM树。因为比较占内存,所以一般用于PC端
SAX
逐行读取,是基于事件驱动的,一般用于手机端,因为内存小。
2.XML解析器JSOUP 1.快速入门 1.步骤- 导入jsoup的jar包获取document对象获取标签Element对象获取数据
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);2.主要对象使用 1.document
Jsoup静态方法parsexml文件获取
2.Element通过getElementByxx获取,下面也会介绍快捷的方式select获取xpath获取
3.获取属性值String attr(String key)
4.获取文本string text()string html() 3.快捷查询1selector
select(String cssQuery),就是css中定位元素的方法参考文档中的Selector类中的方法 4.快捷查询2xpath
需要导入xpath对应的jar包
new JXdocument对象,参数为jsoup获取的document对象
代码
//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标签 ListjxNodes = jxdocument.selN("//student"); for (JXNode jxNode : jxNodes) { System.out.println(jxNode); } System.out.println("--------------------"); //4.2查询所有student标签下的name标签 List jxNodes2 = jxdocument.selN("//student/name"); for (JXNode jxNode : jxNodes2) { System.out.println(jxNode); } System.out.println("--------------------"); //4.3查询student标签下带有id属性的name标签 List 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 jxNodes4 = jxdocument.selN("//student/name[@id='itcast']"); for (JXNode jxNode : jxNodes4) { System.out.println(jxNode); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)