VTD-XML学习(2)——模型刨析

VTD-XML模型分析

VTD-XML是一个新型的非提取式XML解析模型。VTD-XML使用64位整数表示XML节点信息。VTD Record和LC Entry共同构成了VTD-XML的主要结构。

什么是提取? 提取就是指从XML文档中抽取一部分放进内存进行解析,并构建节点对象以保存原始信息

VTD Record
VTD record用来表示XML节点信息,包括节点类型、节点深度、节点长度、偏移量,共有64位。
在这里插入图片描述
(1)节点类型:vtd-xml对标准xml进行了拓展,拓展后包括13种节点类型,如起始标记、结束标记、文本节点、注释节点等等。共占了4个比特位(bit63-bit60),最大值为15,具体表示如下:
在这里插入图片描述
(2)节点深度:节点深度是指节点在DOM树中的深度,其中根元素节点深度为0,节点深度占了8个比特位(bit59-bit52),最大值为255
(3)节点长度:节点信息长度包括两部分:前缀长度(占9位,51-43),就是命名空间的长度,例如:school:table中,前缀长度为7;完全限定名长度(11位,bit42-bit32),指总长度,例如version长度为7
(4)保留位:bit31、bit30
(5)节点偏移:节点偏移是指节点的首字符在整个XML文档中的位置偏移量。共占了30个比特位(bit29-bit0),节点偏移量并不是一成不变的,不同编码的偏移量不同,utf-8节点长度和偏移量单位是一个字节(8位),utf-16则是两个字节(16位)。节点偏移是指他前面的字符个数,例如:<?xml version="1.0" encoding="utf-8"?> version的偏移6

VTD-XML解析时会把每一个XML节点构造为相应的VTD Record从上到下排列,整理为一个一维数组,称为VTD Buffer
在这里插入图片描述
以这个为例子,生成一个VTD Buffer

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值