`
weachy
  • 浏览: 9576 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

VTD-XML经验集锦之按照自上而下的顺序导航满足条件的节点,而忽略层次关系

    博客分类:
  • VTD
阅读更多
<a>
	<b>test</b>
	<c>
		<d>t</d>
		dee
		<e />
		<d>w</d>
		inside c
	</c>
	<d>app</d>
</a>


在以上的XML中,我们通常使用这种“//d”来遍历所有节点名称为“d”的节点,但我们会发现其顺序是按照节点的深度从外到内遍历的。也就是说会最先导航到“<d>app</d>”这个位置,其次才是“<d>t</d>”和“<d>w< /d>”。

而在我们的应用中往往会有自上而下的导航到这些节点的需求。我们可以通过 XPath 轴(在XPath中,轴用来定义某个相对于当前节点的节点集)中的“descendant”来实现。
descendant:选取当前节点的所有后代元素(子、孙等)。

代码如下:

……
	VTDNav vn = vg.getNav();
	AutoPilot ap = new AutoPilot(vn);
	ap.selectXPath("/a");  // 首先导航到根节点
	if (ap.evalXPath() != -1) {				
		ap.resetXPath();
		ap.selectXPath("descendant::d");  // 取跟节点的所有名字为“d”的后代节点
		while (ap.evalXPath() != -1) {
			System.out.println(vn.toNormalizedString(vn.getText()));
		}
	}
……


输出结果为:
t
w
app
分享到:
评论

相关推荐

    vtd-xml vtd-xml vtd-xml

    VTD-XML是一种高效、灵活且轻量级的XML处理库,由Vivtek Data Systems公司开发。这个库专门设计用于解析、导航和修改XML文档,尤其在大型XML数据处理中表现出色。VTD(Variable Token Descriptor)是该库的核心概念...

    vtd-xml+教程+源码+事例+集合.zip

    VTD-XML是一个高效、轻量级的XML解析库,由AutoPilot公司开发,主要用于XML文档的随机访问和导航。本教程将深入探讨VTD-XML的核心概念、使用方法、源码分析以及实例应用,旨在帮助开发者更好地理解和运用这个强大的...

    vtd-xml XML解析工具

    无论是在大型企业系统还是在小型应用中,VTD-XML都能以其出色的性能和丰富的功能满足各种XML处理需求。通过学习和掌握VTD-XML,开发者可以更好地应对XML处理的挑战,提高代码的效率和项目的成功率。

    vtd-xml+教程+源码+事例+集合

    1. **教程**:由于网上关于VTD-XML的教程相对较少,这些教程将帮助开发者快速理解和掌握VTD-XML的基本用法,包括如何初始化XML解析器,如何通过索引进行XML节点的访问,以及如何执行XPath查询等。 2. **源码**:VTD...

    VTD-XML.zip_VTD_VTD-XML_instruction_zip

    这个压缩包“VTD-XML.zip_VTD_VTD-XML_instruction_zip”包含了关于VTD-XML的详细使用指南,特别是其中的“VTD-XML.pdf”文件,应该是该库的用户手册或教程。 XML(Extensible Markup Language)是用于存储和传输...

    vtd-xml源码+例程

    VTD-XML是一种高效、轻量级的XML处理库,由XimpleWare公司开发,它提供了C和Java两种版本。这个压缩包包含了VTD-XML的C++源码和一些例程,对于想要深入理解VTD-XML工作原理或者进行二次开发的开发者来说,是一个非常...

    VTD-XML 不同于SAX和DOM的XML高效解析器

    5. **灵活性**:VTD-XML提供了动态编码和随机访问的能力,使得对XML文档的修改和更新变得简单而灵活。 **SAX解析器** SAX是一种事件驱动的解析器,它在读取XML文档时触发一系列事件,如开始元素、结束元素等。SAX...

    VTD-XML c源码及vs2013编译生成的lib

    VTD-XML库以其基于变量的文档定位(Variable To Document)技术而闻名,它提供了对XML文档的强大导航、解析和操作功能,且性能优于DOM和SAX解析器。 VTD-XML库的核心理念是通过预处理XML文档并创建一个索引,使得...

    vtd-xml example

    VTD-XML利用一种叫做Variable Length Tokenized Index(可变长度标记化索引)的数据结构,能够快速定位XML文档中的元素和属性,而不需要将整个文档加载到内存中,因此在处理大型XML文件时表现出优秀的性能。...

    VTD-XML技术解析XML实例

    VTD-XML是一种高效、灵活且内存友好的XML处理库,尤其在大型XML文档处理方面表现出色。它是由VTD Tech公司开发的,主要用于XML的导航、解析和操作。VTD-XML技术的核心是虚拟XML索引(Virtual Token Descriptor, VTD...

    vtd-xml相关资料.zip

    VTD-XML是一种高效、轻量级的XML解析技术,由XimpleWare公司开发,它在处理大型XML文档时表现出显著的优势,相比DOM和SAX解析方式,VTD-XML在速度和内存占用方面有着更优的表现。VTD(Virtual Token Descriptor)是...

    VTD-XML解析软件.zip

    VTD-XML是一款高效、低内存占用的XML解析软件,由XimpleWare公司开发,它在处理大型XML文档时表现出显著的优势。相比传统的DOM(Document Object Model)和SAX(Simple API for XML)解析器,VTD-XML提供了一种全新...

    新兴XML处理方法VTD-XML介绍

    **增量更新支持**:VTD-XML支持增量更新,这意味着对XML文档的修改可以直接在文档上进行,而不需要先将其解析成对象模型然后再重新构建XML文档。这种特性极大地提高了更新效率。 **快速解析与遍历**:由于采用了非...

    vtd-xml-2.6-java-src.rar_VTD-XML_www.vtd2cn_断词

    VTD-XML 是一种基于 Java* 的新型开放源代码 XML 处理 API,能够解决当前 XML 处理...仅凭这一点,我们还不能认为 VTD-XML 是专门为此而设计的,因为从第一步——断词(tokenization)开始,它就引入了大量优化技术。

    基于多核处理器的VTD-XML节点查询执行性能优化.pdf

    《基于多核处理器的VTD-XML节点查询执行性能优化》这篇论文主要探讨了在当前主流的多核处理器环境下,如何通过优化VTD-XML(Virtual Token Descriptor XML)技术来提升XML文档节点查询的执行性能。VTD-XML是一种高效...

    VTD-XML-Example:使用 VTD-XML 解析器与 volley 并与 pull 解析器进行比较的示例

    VTD-XML是一个高效且灵活的XML解析库,它采用基于索引的访问方法来处理XML文档,而Volley则是Google推出的一个网络请求库,主要用于Android应用中的网络数据加载。本示例将探讨如何使用VTD-XML解析器与Volley协同...

    VTD-XML: The Future of XML Processing-开源

    VTD-XML是一种高效、轻量级的XML处理库,由XimpleWare公司开发并开源。这个库在XML处理领域独具特色,它结合了DOM、SAX和PULL解析器的优点,同时在性能、内存效率和易用性上有所突破。VTD-XML的核心理念是基于变量的...

    使用VTD-XML的无模式C#-XML数据绑定

    标题中的“使用VTD-XML的无模式C#-XML数据绑定”指的是在C#编程环境中,利用VTD-XML库实现的一种XML数据绑定技术,它允许开发者在没有XML架构(Schema)的情况下处理XML文档。VTD-XML库是一个高效且灵活的XML处理...

    VTD-XML:面向未来的XML处理(第一部分)

    VTD-XML正是为了解决这些问题而诞生,它采用一种称为Variable-Size Tokenized Document的表示方式,实现了快速的随机访问和定位,同时保持了较低的内存占用。 VTD-XML的核心特性包括: 1. **快速的随机访问**:VTD...

    vtd-xml解析实例

    网上vtd的使用资料比较少,可能是太简单了没人想写吧。自己写的Demo,对VTDNav、AutoPilot进一步进行封装,从而简化解析代码,仅供参考 上传后才发现上传的demo.xml错了,貌似无法重新上传,内容应该是 &lt;?xml ...

Global site tag (gtag.js) - Google Analytics