DOM:Document Object Model:文档对象模型,把文档中的成员描述成一个个对象
使用Java代码操作XML/使用JavaScript操作HTML
特点:
在加载的时候,一次性把整个XML文档加载进内存,内存中 形成一颗树(Document对象);
我们以后使用代码操作Document,其实操作的是内存中的DOM树,和本地磁盘中的XML文件没有直接关系。
比如我保存了一个联系人,仅仅只内存中多了一个联系人,但是在XML文件中没有新增的痕迹。
除非做 同步操作(把内存中的数据更新到XML文件)----->增删改操作之后,都需要做同步 操作
缺点:若XML文件过大,可能造成内存溢出
注意:使用import导入类/接口,请注意使用org.W3C组织的
如何获取Document文档对象
必须先知道被操纵XML文件的路径:
操作步骤
1、创建DocumentBuilderFactory对象(工厂类中一般都有一个静态方法用于返回当前工厂类对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
2、根据工厂对象,创建DocumentBuilder
DocumentBuilder builder = factory.newDocumentBuilder();
3、根据builder对象区解析一个已经存在的XML文件,从而得到Document对象;
Document doc = builder.parse();
修改某个元素结点的主体内容:把第一个联系人的邮箱改掉。
操作步骤:
1、获取Document文档对象
2、获取XML中的根元素(contacts)
3、获取第一个联系人元素
4、获取元素下的子元素
5、设置要改变的元素的新的文本内容
6、同步操作:把内存中的数据同步到磁盘的XML中
向指定元素结点中增加子元素节点:增加一个新的联系人信息
操作步骤:
1、获取Document文档对象
2、获取XML中的根元素(contacts)
3、创建一个linkman元素的片段
3.1、创建子元素
3.2、给子元素设置文本内容
3.3、把子元素作为linkman元素的子元素
3.4、把linkman元素作为根元素的子元素。
4、同步操作:把内存中的数据同步更新到磁盘的XML中,核心类:Transformer
操作XML元素属性:设置/获取联系人的id属性
操作步骤:
1、获取Document文档对象
2、获取XML中的根元素(contacts)
3、获取联系人元素
4、获取元素下的id属性/设置元素id属性
5、同步操作:把内存中的元素同步更新到磁盘的XML中
注意:如果事获取属性,是不需要同步操作的,而弱国事设置属性需要同步操作
删除指定联系人
操作步骤:
1、获取Document文档对象
2、获取XML中的根元素(contacts)
3、获取联系人元素
4、删除指定元素
5、同步操作:把内存中的元素同步更新到磁盘的XML中