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

二.获取Document对象:

java中document啥意思 java的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解析效率高

java中document啥意思 java的document对象_XML_02


java中document啥意思 java的document对象_java_03