java VTD-解析器逻辑

标签 java xml parsing vtd-xml

我用java实现了VTD-Parser,它成功地轻松解析了大约500 MB的XML文件,并且能够在Excel中写入。 我理解DOM解析器首先创建树节点结构然后获取数据,而SAX是基于事件的解析器。但是是什么让 VTD 解析文件如此简单和高效呢? 我试图搜索,我得到了很多实现的例子,但从未得到逻辑。我尝试了下面的链接来了解这个想法,但没有得到清晰的图片。 VTD_Parser

如果有人可以解释一下这个简短的想法。

最佳答案

根据Wikipedia page关于这个主题,VTD-XML(XML 虚拟 token 描述符)利用非提取式解析,这意味着它不会将文档中的数据提取到某些基于内存的数据结构中,而是构建一个包含指针的数据结构(在偏移量和长度的形式)到原始文档。这种处理显然是内存效率最高的,但我相信这是以性能为代价的,因为在请求数据时不可避免地会进行 IO 操作(但缓存在这里可以提供很大帮助)。

在我看来,当输入非常大并且请求的数据非常小时(一种数据挖掘场景),这种处理是最有用的

关于java VTD-解析器逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30692840/

相关文章:

java - 如何在 Vaadin 中使用递归获取子树项?

java - 如何在 Weblogic 11g 上设置到 ActiveMQ 的 JMS 桥

Python urllib.urlretrieve 和用户代理

xml - Solr 错误创建核心 : fieldType [x] not found in the schema

parsing - 秒差距输入意外结束

java - 将对象移动到列表末尾的优雅方式

java - Spring-@Repository 和 @RepositoryRestResource 的区别和用例?

java - 手动更改进度条颜色

html - 我可以使用 XSLT 解析 HTML 吗?

perl - 如何从 csv 数据中拆分和填充值?