Java DOM:文档对象

时间:2020-01-09 10:36:29  来源:igfitidea点击:

DOMDocument对象代表一个XML文档。当我们使用Java DOM解析器解析XML文件时,我们将获得一个Document对象。在本文中,我将为我们提供遍历DOM图的领先优势。我无法涵盖所有内容,但这不是必需的。我们只需要足够的图片即可。其余的我们可以在JavaDoc中阅读。

DOM的两个最常用的函数是:

  • 访问元素的子元素
  • 访问元素的属性

本文涵盖的是这两个主要函数。

"文档"接口和所有相关接口位于Java包" org.w3c.dom"中,因为它们是由万维网联盟(W3C)设计的。在JavaDoc中寻找DOM接口时,我们需要知道这一点。

DOM文档元素

DOM对象包含许多以树状结构连接的不同节点。顶部是"文档"对象。 "文档"对象只有一个根元素,可以通过调用" getDocumentElement()"来返回,如下所示:

Element rootElement = document.getDocumentElement();

DOM元素,子元素和节点接口

根元素具有子元素,可以是元素,注释,处理指令,字符等。我们可以像这样获得元素的子元素:

NodeList nodes = element.getChildNodes();

for(int i=0; i<nodes.getLength(); i++){
  Node node = nodes.item(i);

  if(node instanceof Element){
    //a child element to process
    Element child = (Element) node;
    String attribute = child.getAttribute("width");
  }
}

getChildNodes()方法返回一个NodeList对象,该对象是Node元素的列表。 Node接口是DOM中几乎所有不同节点类型的超级接口。这意味着,"文档"接口继承自(扩展)"节点","元素"接口扩展了"节点","属性"接口扩展了"节点"等。

"节点"是DOM中所有节点接口的超级接口这一事实意味着我们有时必须在"节点"接口中查找所需的方法,例如方法" getChildNodes()"。当尝试遍历"文档"图时,需要注意这一点。

DOM元素属性

如我们所见,我们可以通过Element接口访问元素的属性。有两种方法可以这样做:

String attrValue = element.getAttribute("attrName");

Attr attribute = element.getAttributeNode("attrName");

在大多数情况下,getAttribute()方法就可以了。

Attr接口扩展了Node。它允许我们通过方法getOwnerElement()等访问拥有元素。如果需要将属性传递给一个或者多个方法,则该方法需要访问有关该属性的更多信息,因此通过此接口访问属性非常方便。属性以对其进行处理。

我们可以使用Document对象和相关节点做更多的事情,但是90%的时间将使用访问子元素和属性。其余的可以通过签出JavaDoc来找到。