DOM接口技术

DOM(Document Object Model)是W3C定义的一个规范,提供了一个统一的接口来处理XML文档。它将文档表示为节点对象树,允许开发者动态创建、遍历、修改和删除文档内容。本文档详细介绍了DOM的概述、结构、接口和对象,包括Document接口、Node接口、NodeList和NamedNodeMap,以及如何使用DOM进行XML文档操作。
摘要由CSDN通过智能技术生成

DOM接口技术

DOM概述

DOM是什么
  • Document Object Model 文档对象模型
  • DOM是一个与平台无关,语言无关的应用程序接口
  • DOM是W3C组织定义并公布的一个规范
DOM作用
  • 提供一个统一的XML数据接口
  • 应用DOM,可以动态创建文档,遍历文档,添加修改删除文档中的内容
  • DOM接口规范提供了一种编写XML代码的方法

DOM的结构

  • DOM把文档表示为节点(Node)对象树

  • 节点对象表示文档中XML元素,也代表文档内其他所有内容(比如文本

    根元素,处理指令,注释文档类型,实体,实体引用,命名空间等多种对象模型

  • DOM树展示了XML文件提供的信息以及它们之间的关系。

DOM接口
  • Document

  • Node:代表DOM树中的一个节点 。

  • NodeList:表示有顺序关系的一组节点。

  • NamedNodeMap:通过名字来访问节点的集合。

Document接口
  • 提供对文档数据访问和操作的入口,提供了创建其他节点对象的方法
Document.doctype => 拿到文档的 DOCTYPE
Document.documentElement => 拿到文档的根节点
node接口

DOM接口的很多接口是从node继承而来的,代表树的一个节点,提供访问DOM树某个元素的内容与信息的途径

node.nodeType => 节点类型
node.nodeName => 节点名称
nodeList接口

提供对节点集合的抽象定义,表示有顺序的集合

例如上述我们用node接口获得孩子节点

NodeList nl = node.childNodes => 获取孩子节点
Node child1 = nl.item(0); => 访问第一个孩子节点
NamedNodeMap

这个接口可以用名字来访问一组节点

例如上述我们用node接口获得node属性

NameNodeMap nnm = node.attributes; => 获得节点属性集合
string value = nnm.getNamedItem("xxx"); => 通过属性名获得某个属性值

DOM对象

  • Document
  • Element
  • Attriubute
  • Text
  • 集合索引
Document对象

例子:加载XML文档

  1. 导入java依赖
import java.io.*; 			//Java基础包,包含各种IO操作
import javax.xml.parsers.*; //XML解析器接口
import org.w3c.dom.*; 		//XML的DOM实现
  1. 解析
try {
   
	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	DocumentBuilder builder = factory.newDocumentBuilder();
	Document document = builder.parse(new File("xxx.xml"));
} catch (Exception e) {
   
    
}

这个对象有很多属性和方法

注意这些属性都是私有属性,可以通过getxxx访问

例如 childNodes=> getChildNodes()

下面的其他对象也是一样的 (下面没有标粗的代表我觉得没用的

属性/方法 描述
async 表示xml的下载是否应当被同步处理
childNodes 获得文档的子节点的节点列表
doctype 文档的DTD声明
xmlEncoding 编码方法
xmlStandalone 文档是否为独立的
xmlVersion 返回文档的XML版本
createAttribute(name) 创建一个拥有指定名称的属性节点,返回新的Attr对象
createElement(name) 创建元素节点
createTextNode(text) 创建文本节点
getElementsByTagName() 返回所有具有指定名称的元素节点
loadXML(text) 通过解析XML标签字符串来组成文档
normalize() 去掉xml文档中的空白部分
renameNode(node, uri, name) 重新命名元素或者属性
getDocumentElement() 获得文档的根节点
node

一下是node对象的属性

属性 描述
firstChild 返回节点的首个子节点。
lastChild 返回节点的最后一个子节点。
nextSibling 返回节点之后紧跟的同级节点。
nodeType 返回节点的类型。
nodeValue 设置或返回节点的值,根据其类型。
parentNode 返回节点的父节点。
previousSibling 返回节点之前紧跟的同级节点。
textContent 设置或返回节点及其后代的文本内容。

需要注意的是如果要取出节点的值应该用 textContent 而不是 nodeValue

例如

<input /> => 取出value用nodeValue

例如

<text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值