之前的文章我们讲解了《XML系列教程之Schema技术_上海尚学堂java培训技术干货》《XML的概念、特点与作用、XML申明_上海Java培训技术干货》,大家可以点击回顾一下之前将的技术,能更好地学习本内容。本文在此基础上再讲述XML的解析技术。(以上文字发表在我的上海尚学堂网站上,大家可以点击阅读更多Java、Python和大数据相关文章)
一、四种常见的XML解析技术
dom是解析xml的底层接口之一(另一种是sax) ,而jdom和dom4j则是基于底层api的更高级封装 ,dom是通用的,而jdom和dom4j则是面向java语言的 。
二、Dom解析Xml(了解)
DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。
2.1 Dom 解析主要对象
2.2 Dom 解析Xml步骤
l 创建解析器工厂对象
l 由解析器工厂对象创建解析器对象
l 由解析器对象对指定XML文件进行解析,构建相应DOM树,创建Document对象
l 以Document对象为起点对DOM树的节点进行增删改查操作使用
Api 文档参考地址:
http://www.w3school.com.cn/xmldom/index.asp
Dom解析解析学生成绩信息score.xml
"1.0" encoding="utf-8" ?>
张三 123456 657432 |
/** * 解析xml文档 * */ public static void parseXml(){ try{ //得到DOM解析器的工厂实例 DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); //从DOM工厂中获得DOM解析器 DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder(); //把要解析的xml文档读入DOM解析器 Document doc = dbBuilder.parse("C:\\java\\idea_workspace_18\\freemarker01\\src\\main\\resources\\scores.xml"); System.out.println("处理该文档的DomImplementation对象 = "+ doc.getImplementation()); //得到文档名称为Student的元素的节点列表 NodeList nList = doc.getElementsByTagName("Student"); //遍历该集合,显示结合中的元素及其子元素的名字 for(int i = 0; i< nList.getLength() ; i ++){ Element node = (Element)nList.item(i); System.out.println("Name: "+ node.getElementsByTagName("Name").item(0).getFirstChild().getNodeValue()); System.out.println("Num: "+ node.getElementsByTagName("Num").item(0).getFirstChild().getNodeValue()); System.out.println("Classes: "+ node.getElementsByTagName("Classes").item(0).getFirstChild().getNodeValue()); System.out.println("Address: "+ node.getElementsByTagName("Address").item(0).getFirstChild().getNodeValue()); System.out.println("Tel: "+ node.getElementsByTagName("Tel").item(0).getFirstChild().getNodeValue()); } }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } |
结果
三、Dom4J解析Xml(推荐)
DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
Api文档参考地址: https://dom4j.github.io/
3.1 D
OM4J解析Xml步骤
3.2 DOM4J 解析学生成绩信息 scores.xml
l 获得document 对象
SAXReader reader=new SAXReader(); Document document=reader.read(new File("input.xml")); |
l 操作xml文档节点
Element rootElm=document.getRootElement();//获得根节点 Element memberElm=root.element(“member”); //获得子节点 String text=memberElm.getText();//获得节点文本 Element ageElm=newMemberElm.addElement(“age”);//添加子节点 ageElm.setText(“29”);//设置节点文本 parentElm.remove(childElm);//)删除某节点 |
这就是上海尚学堂Java培训的XML系列教程课件简约版,获取详细全套Java视频教程请联系留下扣扣薇芯等联系方式,稍后会发相关资料给您。