`

快速而高效地搜索XML数据

阅读更多
http://bbs.9ria.com/viewthread.php?tid=75361&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D2592000

项目组中,大多数人喜欢使用XML作为数据交接桥梁,常会碰到对XML进行大批量搜索与提取,比如下面的XML文件:
XML/HTML代码
var xml:XML=<xml>   
<item id="6" title="商创博客"/>   
<item id="12" title="商创技术"/>   
<item id="43" title="shch8.com"/>   
<item id="26" title="webBase"/>   
<item id="17" title="shch8.com/webbase"/>   
</xml>; 


我想提取id大于20的数据,你会怎么做?

用for和 if 循环判断id>20,如果你真是这样做的,看到这篇blog因该感到幸运了!

我有3000条数据,你还用for的话,那是个很吃力的过程了。

1.AS3的XML实现了E4X的处理标准,配合XML与XMLList的取值方法可以很灵活地操作XML数据,正确的做法因该是:

AS3代码
trace(xml.child("*").(@id>20))    
/*输出   
<item id="43" title="shch8.com"/>   
<item id="26" title="webBase"/>   
*/ 


当然,也可以这样写

AS3代码
trace(xml.item.@id>20)  


使用XML结点名取值,结果是一样的。

2.接下来,我们还可以针对title进行搜索,代码:

AS3代码
var xml:XML=<xml>    
<item id="6" title="商创博客"/>    
<item id="12" title="商创技术"/>    
<item id="43" title="shch8.com"/>    
<item id="26" title="webBase"/>    
<item id="17" title="shch8.com/webbase"/>    
</xml>;    
var searchKey:String="商创"   
trace(xml.child("*").(@title.indexOf(searchKey)!=-1));    
/*输出   
<item id="6" title="商创博客"/>   
<item id="12" title="商创技术"/>   
*/  



3.或许你会说我太土了,用indexOf进行字符判断,为什么不用正则表太式?是的,可以这样写

AS3代码
xml.child("*").(pattern.test(@title));  


但这并不是RegExp可识别的方法,我们再改下,写个函数代理判断

AS3代码
var xml:XML=<xml>       
<item id="6" title="商创博客"/>       
<item id="12" title="商创技术"/>       
<item id="43" title="shch8.com"/>       
<item id="26" title="webBase"/>       
<item id="17" title="shch8.com/webbase"/>       
</xml>;       
var searchKey:String="shch"      
var pattern:RegExp=new RegExp(searchKey);       
trace(xml.child("*").(regTest(@title)));    
function regTest(obj:String):Boolean{       
return pattern.test(obj)       
    }       
/*输出     
<item id="43" title="shch8.com"/>     
<item id="17" title="shch8.com/webbase"/>     
*/ 
 

4.最后,我们取到的数据,都是xmlList类型,你在使用时如果喜欢用XML来操作,那可以再创建一个XML对象

AS3代码
var xml:XML=<xml>       
<item id="6" title="商创博客"/>       
<item id="12" title="商创技术"/>       
<item id="43" title="shch8.com"/>       
<item id="26" title="webBase"/>       
<item id="17" title="shch8.com/webbase"/>       
</xml>;       
var searchKey:String="shch"      
var pattern:RegExp=new RegExp(searchKey);       
var getXML:XML=<data/>       
getXML.appendChild(xml.child("*").(regTest(@title)))       
trace(getXML)       
function regTest(obj:String):Boolean{       
return pattern.test(obj)       
    }       
/*输出     
<data>   
  <item id="43" title="shch8.com"/>   
  <item id="17" title="shch8.com/webbase"/>   
</data>   
*/

分享到:
评论

相关推荐

    SQL Server 2005中XML数据类型的性能

    在SQL Server 2005中,XML数据类型的性能优化是一项关键任务,因为XML在现代企业应用程序中扮演着越来越重要的角色,特别是在处理半结构化和非结构化数据时。SQL Server 2005引入了对XML的原生支持,允许XML数据存储...

    vtd-xml vtd-xml vtd-xml

    6. **应用场景**:VTD-XML适用于大数据分析、XML文档的索引和搜索、XML数据转换、XML验证和校验等多种场景。特别是在XML数据的批处理和后台服务中,其性能和内存效率成为首选。 7. **集成与兼容性**:VTD-XML库可以...

    XML文件读取工具(Notepad++)

    5. **正则表达式搜索与替换**:对于XML数据的查找和替换,Notepad++支持正则表达式,这在处理大量数据时非常有用。 6. **多文档界面**:用户可以在同一窗口内打开多个XML文件,方便进行比较和编辑。 7. **插件支持...

    vtd-xml XML解析工具

    在实际应用中,VTD-XML常用于大数据处理、XML文档的批量处理、XML日志分析、XML数据的提取和转换等场景。由于其高效的性能和低内存消耗,VTD-XML特别适合那些对处理速度和内存效率有高要求的项目。 总的来说,VTD-...

    halcon XML文件处理函数,halcon函数手册,Halcon源码.zip

    通过熟练掌握Halcon的XML处理函数,结合函数手册的指导,开发者可以高效地处理XML数据,提升机器视觉应用的灵活性和可维护性。同时,深入理解Halcon的核心算法和实现机制,有助于开发出更符合实际需求的解决方案。

    VTD-XML技术解析XML实例

    VTD-XML通过创建VTD索引来解决这个问题,它只需要加载部分或关键部分的XML数据到内存,从而极大地减少了内存消耗。 VTD-XML的工作原理主要包括以下步骤: 1. **索引生成**:VTD-XML首先读取XML文件并生成VTD索引,...

    信息检索大作业-XML搜索

    通过深入研究XML的解析方式与效率,以及采用高效的搜索机制,如时态XML索引机制和混合并行处理方法,可以极大地提高XML文档的处理速度和查询性能。同时,结合XNodeRelation等智能算法,能够进一步提升搜索的精度,为...

    Xml Viewer (xml文档修改器)

    同时,预览功能可以帮助用户直观地看到XML数据呈现的效果。 7. **查找与替换**:搜索和替换功能在处理大型XML文档时尤其有用,可以快速定位和更改特定文本或元素。 8. **集成开发环境(IDE)支持**:对于开发人员...

    易语言xml读取到超级列表框

    以上就是易语言中关于“xml读取到超级列表框”的主要知识点,理解并掌握这些概念和技巧,可以帮助开发者高效地处理XML数据,构建用户友好的数据展示和操作界面。在实际应用中,可能还需要结合错误处理、性能优化等...

    XML 可视化工具 foxechs

    使用foxechs这样的XML可视化工具,开发人员可以更高效地处理XML数据,无论是进行数据的查看、分析还是调试,都能显著提高工作效率。在实际工作中,特别是在处理大型或者复杂的XML项目时,foxechs这样的工具显得尤为...

    微软出品XML查看编辑工具

    这个工具专门用于查看和编辑XML文档,为开发者和IT专业人员提供了一种高效的方式来处理XML数据。通过这个工具,用户可以轻松地浏览XML结构,检查元素和属性,验证文档是否符合XML规范,以及进行更复杂的操作,如...

    Jquert+XML(智能搜索)分享下

    结合XML数据格式,我们可以创建高效的智能搜索功能,使得用户可以快速、准确地找到所需信息。本文将深入探讨如何使用jQuery和XML来实现这一功能。 首先,让我们了解XML(eXtensible Markup Language)。XML是一种...

    XML查看工具

    XML查看工具是专为处理XML文档而设计的软件,它们通常提供一系列功能,帮助开发者和用户更高效地浏览、编辑和分析XML文件。 "XML查看工具"是一款强大的应用程序,旨在简化超大XML文件的查看过程。由于XML文件可能...

    Oracle XML 文档PDF手册

    4. **XPath和XQuery**: XPath是用于在XML文档中查找信息的语言,而XQuery则是一种更强大的查询语言,可以用于查询、更新和转换XML数据。Oracle支持XPath和XQuery的集成,使得开发者可以通过这些语言直接在数据库中...

    XML Marker1.1

    这款软件在XML解析、格式化以及数据可视化方面表现出色,是开发人员和数据分析师在处理XML数据时的得力助手。 XML,全称为Extensible Markup Language,是一种可扩展标记语言,广泛应用于数据交换、配置文件存储...

    数据结构 树查找与xml

    在IT领域,数据结构是计算机科学的基础...同时,熟悉XML的结构和查询机制,如XPath和XQuery,有助于在处理XML数据时实现高效的信息提取和操作。这些知识点在软件开发、数据分析以及网络通信等众多IT领域都有广泛应用。

    XMLEditor

    XMLEditor就是这样一款专为XML设计的编辑软件,它集编辑、阅读、验证和格式化功能于一体,帮助用户高效地处理XML数据。 1. **XML编辑功能**:XMLEditor提供了一流的XML编辑环境,支持语法高亮、自动完成、缩进引导...

Global site tag (gtag.js) - Google Analytics