Java开发之DOM解析

一.document对象:
要操作XML,先就得有Document对象:
把一个XML文件加载进内存的时候,在内存中形成所谓的一种树状结构,我们把这一个结构称之为DOM树.
注意:
我们在Java代码中所做的增/删/改/查操作,都仅仅是操作的是内存中的Document对象,和磁盘中的XML文件没有关系.
比如:删除一个联系人信息之后,XML文件中数据依然存在,此时出现内存中的数据和磁盘文件中的数据不同步,所以,对于增删改操作,我们需要做同步操作(把内存中的数据和磁盘的XML文件数据保持一致).
DOM:在第一次的时候就会把XML文件加载进内存,如果XML文件过大,可能会造成内存的溢出.
DOM:在做增删改查操作的时候比较简单,但是性能却不高(线性搜索).

二.获取Document对象:
在这里插入图片描述

public class DOMTest {
    @Test
    public void test1() throws  Exception{
        /*1):表示出需要被操作的XML文件的路径,注意是文件的路径,不是文件所在的目录.
                File f = new File(...);
        2):根据DocumentBuilderFactory类,来获取DocumentBuilderFactory对象.
                注意:工厂设计模式往往体现着单例设计模式.
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance() ;
        3):根据DocumentBuilderFactory对象,构建DocumentBuilder对象.
                注意:XxxFactory,就是用来创建Xxx对象的.
                DocumentBuilder build = factory .newDocumentBuilder();
        4):根据DocumentBuidler对象,构建Document对象.
                Document doc = build.parse(f);*/
        File file = new File("F:\\works\\xx.xml");
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document document = builder.parse(file);
        System.out.println(document);
    }
}

三.常用API:

Document接口Element getDocumentElement() : 获取文档的根元素Element getElementById(String elementId) : 该方法只有使用ID约束才能使用NodeList getElementsByTagName(String tagname) : 在整个文档中根据元素的名称获取元素Element createElement(String tagName) : 根据元素的名称创建元素
Element接口NodeList getElementsByTagName(String name) : 根据元素的名称获取多个元素void setAttribute(String name, String value) : 给元素设置属性名和属性值String getAttribute(String name) : 根据属性名获取属性值

Node接口:
String getTextContent() : 获取节点的文本内容
void setTextContent(String textContent) : 设置节点的文本内容
Node appendChild(Node newChild) : 给当前节点添加子节点
父.appendChild(子);
Node removeChild(Node oldChild) : 删除当前节点的子节点
父.removeChild(子);
Node getParentNode() : 获取当前节点的父节点

四.DOM4J:
是由第三方开源组织编写的一套使用Java语言高效解析XML的工具
DOM操作和思路和DOM4J的操作是一样的,仅仅调用的方法名字变了
DOM解析特点: 简单,思路思维比较清晰
DOM4J特点:更加简单,更加清晰,查询效率比DOM解析效率高
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值