XML解析
#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>>
XML解析
什么是DOM
使用DOM的解析步骤
什么是dom4j
使用dom4的解析步骤
什么是DOM
DOM全称Document Object Model文档对象模型,将文档中的元素或者其他节点转换成一个一个的对象使用java代码操作XML或者js代码操作HTML
DOM解析的特点
在加载的时候一次性把整个的XML文档载入内存,在内存中形成一颗树(Document对象)
之后使用代码去操作Document对象,其实是操作的是内存当中的DOM树,和本地磁盘中的XML文件没有直接关系
由于操作的是内存当中的dom,磁盘中的xml内容并没有变所以,在操作完之后要进行同步
缺点:若xml文件过大可能会造成内存溢出
DOM的解析步骤
1.创建解析器工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
通过解析器工厂对象创建解析器
DocumentBuilder builder = factory.newDocumentBuilder();
通过解析器解析xml得到document对象
Document doc = builder.parse("src/xml/text.xml");
document对象筛选节点列表nodes
NodeList nodes = doc.getElementsByTagName("students");
节点列表再去确定唯一的节点node
Node node =nodes.item(0);
获取节点内容
System.out.println(node.getTextContent());
修改节点内容并同步
node.setTextContent("ss");System.out.println(node.getTextContent());Transformer transform = TransformerFactory.newInstance().newTransformer();transform.transform(new DOMSource(doc),new StreamResult("src/xml/text.xml"));
删除元素节点
node.getParentNode().removeChild(node);
增添元素节点
Element newElement = doc.createElement("newElement");newElement.setTextContent("内容");node.appendChild(newElement);
增添属性节点
Element e = (Element)node;e.setAttribute("属性名","属性值");
什么是dom4j
DOM4J是dom4j.org出品的一个开源XML解析包
dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件
越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。
dom4j解析步骤
1.创建解析器
SAXReader reader = new SAXReader();
2.解析器解析xml得到document对象
Document doc = reader.read("src/xml/text.xml");
3.获取doc根元素
Element root = doc.getRootElement();
4.遍历根元素下的元素,并找到所有元素下的name元素
List<Element> list = root.elements();for (Element element : list) {Element name = element.element("name");System.out.println(name.getText());}
5.同步到文件
Writer wr = new OutputStreamWriter(new FileOutputStream("src/xml/text.xml"),"UTF-8");doc.write(wr);wr.close();
6.增加元素设置属性
Element newElement = root.addElement("newElement");newElement.addAttribute("属性名","值");newElement.setText("内容");
勤学如春起之苗,不见其增,只有所长。辍学如磨刀之石,不见其增,日有所亏
愿你的今天胜过昨天
本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

浙公网安备 33010602011771号