java dom html_简单谈谈dom解析xml和html

前言

文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。html,xml都是基于这个模型构造的。这也是一个W3C推出的标准。java,python,javascript等语言都提供了一套基于dom的编程接口。

java使用dom解析xml

一段xml文档, note.xml:

George

John

Reminder

我们先使用w3c dom解析该xml:

@Test

public void test() {

NodeList nodeList = doc.getChildNodes().item(0).getChildNodes();

System.out.println("xml size: " + nodeList.getLength());

for(int i = 0; i < nodeList.getLength(); i ++) {

Node node = nodeList.item(i);

System.out.println(node.getNodeType());

System.out.println(node.getNodeName());

}

}

输出:

xml size: 9

3

#text

1

to

3

#text

1

from

3

#text

1

heading

3

#text

1

body

3

#text

我们看到代码输出note节点的字节点的时候,有9个节点,但是xml文档中note节点实际上只有to、from、heading、body4个节点。 那为什么是9个呢,原因是这样的。

选取几个w3c规范中关于节点类型的描述:

节点类型

描述

nodeName返回值

nodeValue返回值

子元素

类型常量值

Document

表示整个文档(DOM 树的根节点)

#document

null

Element(max. one),Comment,DocumentType

9

Element

表示 element(元素)元素

element name

null

Text,Comment,CDATASection

1

Attr

表示属性

属性名称

属性值

Text

2

Text

表示元素或属性中的文本内容。

#text

节点内容

None

3

CDATASection

表示文档中的 CDATA 区段(文本不会被解析器解析)

#cdata-section

节点内容

None

4

Comment

表示注释

#comment

注释文本

None

8

下面解释一下文档节点的字节点的处理过程:

c3a0647ab56a435e910083f88379efa1.png

其中红色部分为Text节点,紫色部分是Element节点(只画了部分)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值