一、解析方式
1、sax:特点:逐行解析,不可回退,只能查询;
2、dom:特点:一次性解析成dom树,可回退,能进行crud操作;
二、解析技术
JAXP:sun公司提供支持DOM和SAX开发包
JDom:dom4j兄弟
jsoup:一种处理HTML特定解析开发包
★dom4j:比较常用的解析开发包,hibernate底层采用。
三、dom解析的原理进而结构原型
xmldom 将文档加载到内存中,生成一个dom树,并获得一个Document对象,通过Document对象操作对dom进行操作。
四、dom4j进行查询技术
1、导入dom4j的jar包后在java文件中,按以下步骤编写
①创建核心对象SAXReader:SAXReader reader = new SAXReader();
②将xml文档加载到内存中形成dom树:Document doc = reader.read(文件路径);
③获取根节点:Element root = doc.getRootElement();通过根节点可以获取其他节点(文本节点,属性节点,元素节点)
④获取所有子元素:List<Element> list = root.elements();
⑤获取圆的指定属性的内容:String value = 元素.attrbuteValue("属性名");
⑥遍历list获取每一个元素:for(Element e:list){System.out.println(e);}
五、xpath 解析技术(依赖于dom4j)
使用步骤
①导入两个jar包(dom4j和jaxen-1.1-beta-6.jar两个jar包缺一不可)
②加载xml文件到内存中,操作如(四)中;
③使用api
doc.selectNode("表达式");//表达式为xpath表达式
doc.selectSingleNode("表达式");
表达式的写法:(1)/ 从根节点选取 (2)// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
//元素名[@属性名='属性值']
例如,一个标签下有一个id属性且有值 id=2;
//元素名[@id='2'] 可以选择它