java中的接口是类吗
278
2022-11-02
xml基本组成+约束+解析
XML:主要用来存储数据
. XML的作用
xml的格式必须规范
包含版本,和字符集编码
每个浏览器都有xml的解析引擎,直接把xml放入浏览器中就可以了,如果成功的话,就是下面的这种情况
CDATA区
在该区域中的数据会被原样展示,
因为在xml中有一些特殊字符,像 “<” 和 “&” 字符在 XML 元素中都是非法的。
转义字符:
“<” 会产生错误,因为解析器会把该字符解释为新元素的开始。
“&” 会产生错误,因为解析器会把该字符解释为字符实体的开始 为了让他们能够原样展示,将这些放到CDATA区格式:
XML约束
因为xml是可以自定义的也就是可以随便写的,所以当对应的框架要解析xml的时候不知道怎么解析,这个时候来了个说明文档就是XML约束 现在有两种约束技术 1.DTD:一种简单的约束技术 2. Schema:一种复杂的约束技术
1.引入DTD约束
将dtd文件复制到项目的文件夹下
student.dtd文件约束如下,这个约束是可以更加的需要自己修改成自己想要的,这只是举个例子
然后在项目创建一个XML文件,需要引入dtd约束 本地: 这里的根标签是students ,dtd文件的位置直接是student.dtd 及下图,这样引入就可以了
下面就可以写xml里面的内容和属性了。。。。
2.Schema约束
一种更牛逼的约束,约束能力更强,更严格 后缀为.xsd文件。
XML解析
解析:就是获取XML文件的内容,获取节点名,节点值,属性名,属性值 .将文档中的数据读取到内存中解析的目标是,在解析之后,java程序能够得到xml文件的所有数据.和内容 解析方式分两种:一般在服务器端用的是DOM树解析,在移动端用的是SAX解析的方法
1.DOM:
将标记语言文档一次性加载进内存,在内存中形成一颗dom树
*优点:操作方便,可以对文档进行CRUD的所有操作
* 缺点:占内存
2.SAX
逐行读取,基于事件驱动的。来个指针,读一行,释放一行 优点:不占内存。 * 缺点:只能读取,不能增删改
xml常见的解析器:
1. JAXP:sun公司提供的解析器,支持dom和sax两种思想 2. DOM4J:一款非常优秀的解析器 3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 4. PULL:Android操作系统内置的解析器,sax方式的。
Jsoup 主要是用来解析出document对象,解析出DOM树 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 步骤:
创建demo.java来解析xml,获得里面的资源
import org.jsoup.Jsoup;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.io.File;import java.io.IOException;public class demo { public static void main(String[] args) throws IOException { //2获取document对象 //2.1获取xml文件的路径path String path = demo.class.getClassLoader().getResource("b.xml").getPath(); //2.2解析xml文档,加载文档进内存.获取DOM树-生成document对象 org.jsoup.nodes.Document document1 = Jsoup.parse(new File(path), "utf-8"); //3.获取元素对象 Element Elements elements = document1.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); Element element1 = elements.get(1); String name1 = element1.text(); System.out.println(name1); }}
Jsoup中的一些对象
Jsoup对象 工具类,可以解析html或xml文档,返回Document * parse:解析html或xml文档,返回Document 有很多的重载方法 * parse(File in, String charsetName):解析xml或html文件的。 * parse(String html):解析xml或html字符串 * * parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象 例如第二个方法的测试如下
import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import java.io.IOException;public class demo { public static void main(String[] args) throws IOException { String str="\n" + "\n" + "\n" + "
输出结果如下图
**Document对象**:**文档对象。代表内存中的dom树** * 获取Element对象 * getElementById(String id):根据id属性值获取唯一的element对象 * getElementsByTag(String tagName):根据标签名称获取元素对象集合 * getElementsByAttribute(String key):根据属性名称获取元素对象集合 * getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合 Elements:元素Element对象的集合。可以当做 ArrayList
Jsoup特色快捷查询方式
selector:选择器* 使用的方法:Elements select(String cssQuery)* 语法:参考Selector类中定义的语法*2.XPath查询:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言
XPath
xpath教程 在jsoup中用xpath需要导入jar包
2* 查询w3cshool参考手册,使用xpath的语法完成查询
//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
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~