Flex XML搜索、匹配
-
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
creationComplete="init()"> <fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.utils.StringUtil; import spark.events.TextOperationEvent; public var listshow:XML=
<apps name="计算机课程">
<item name="算法与数据结构"/>
<item name="分布式计算"/>
<item name="计算机网络"/>
<item name="分布式系统"/>
</apps>;
[Bindable]
public var listnew:XML=null; //搜索过滤后的数据 public function init():void
{
getData();
}
protected function textinput_change(event:TextOperationEvent):void
{
getData();
}
protected function getData():void
{
//删除字符串的开头末尾的空格
if(StringUtil.trim(textinput.text)=="")
{
listnew=listshow;
}else{
createNewXML(textinput.text,listshow);
}
//打开或关闭指定项目下的所有树项目。如果设置 dataProvider 之后立即调用 expandChildrenOf()
//则您可能看不到正确的行为。您应该等待对组件进行验证或调用 validateNow()方法
tree.validateNow();
expandtree();
}
//搜索过滤产生新的XML
private function createNewXML(str:String,xml:XML):void
{
listnew=<apps name="计算机课程" />;
for(var i:int=0;i<xml.children().length();i++)
{
var itemxml:XML=xml.child("item")[i];
if(isInStr(str,itemxml.@name.toString()))
listnew.appendChild(itemxml);
}
}
//判断search_str是否在str中
public function isInStr(search_str:String,str:String):Boolean
{
var num:int=str.indexOf(search_str);
if(num>-1)
{
return true;
}else return false;
}
protected function expandtree():void
{
for each(var itemxml in this.tree.dataProvider)
this.tree.expandChildrenOf(itemxml,true);
}
]]>
</fx:Script>
<s:Panel width="767" height="361" title="演示实例">
<s:TextInput id="textinput" x="10" y="10" width="174" height="32"
change="textinput_change(event)" prompt="请输入要搜索的关键词"/>
<mx:Tree id="tree" x="10" y="50" width="174" height="208" dataProvider="{listnew}"
labelField="@name"/>
<s:Label x="14" y="263" height="28" text="更多例子 请关注:www.baidu.com"/>
</s:Panel>
</s:Application>
效果图:

搜索结果:

参考文献:http://www.oschina.net/code/snippet_853151_21508


Flex XML搜索、匹配的更多相关文章
- (转载)MySQL LIKE 用法:搜索匹配字段中的指定内容
(转载)http://www.5idev.com/p-php_mysql_like.shtml MySQL LIKE 语法 LIKE 运算符用于 WHERE 表达式中,以搜索匹配字段中的指定内容,语法 ...
- 基于Vuejs的搜索匹配功能
最近一直在看vue,查了很多资料,看了很多文档和博客,大概半知半解了,然后利用所理解的知识写了一个简单的搜索匹配功能. 大概长这个样子: <!DOCTYPE html> <htm ...
- WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配
原文:WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 网上的 ...
- Flex的正则表达式匹配速度与手工代码的比较
flex是一个词法分析器生成器,它是编译器和解释器编程人员的常用工具之一.flex的程序主要由一系列带有指令(称为动作代码)的正则表达式组成.在匹配输入时,flex会将所有的正则表达式翻译成确定性有穷 ...
- Flex XML
一.创建XML类 1.把字符串对象转换为XML: var xmlStr:String="<students><student><name>吕布</n ...
- phpstorm搜索匹配正则表达式
data-position=".................................................................." 点是匹配任意一 ...
- Flex XML/XMLList 常用操作
1 XML.XMLList操作 Flex对xml提供了很多强大而灵活的操作.相对于其他语言,flex对xml的格式要求不那么苛刻,只要符合基本格式语法的字符串,flex能非常简单的转换成x ...
- 012-elasticsearch5.4.3【五】-搜索API【一】搜索匹配所有matchAllQuery、全文查询[matchQuery、multiMatchQuery、commonTermsQuery、queryStringQuery、simpleQueryStringQuery]
一.概述 查询所使用的 QueryBuilders来源于以下 import static org.elasticsearch.index.query.QueryBuilders.*; 请注意,您可以使 ...
- iOS 模糊、精确搜索匹配功能方法总结 By HL
字符串搜索主要用于UITableView的搜索功能的筛选,过滤,查询 下面是一些流行的搜索查询方法 一.遍历搜索 for循环 根据要求:精确搜索(判读字符串相等) 模糊搜索(字符串包含) 相关知识 ...
随机推荐
- c++ 调用DLL函数,出现错误
c++ 调用DLL函数,出现错误 Run-Time Check Failure #0 - The value of ESP was not properly saved across a funct ...
- AngularJS ng-class用法
mark from https://my.oschina.net/gejiawen0913/blog/188547 ng-class是AngularJS预设的一个指令,用于动态自定义dom元素的css ...
- 解决ListView 和ScroolView 共存 listItem.measure(0, 0) 空指针
在网上找到ListView 和ScroolView 共存的方法无非是给他每个listview 重新增加高度,但是android 的设计者始终认为这并不是一种好的实现方法.但是有的时候有必须要用这种蛋疼 ...
- 认识和理解css布局中的BFC
认识和理解css布局中的BFC BFC的定义 是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用. Block Formatting Con ...
- Bluetooth 2.1+EDR是什么
目前应用最为广泛的是 Bluetooth 2.0+EDR标准,该标准在2004年已经推出,支持Bluetooth 2.0+EDR标准的产品也于2006年大量出现.虽然Bluetooth 2.0+EDR ...
- 改变QTreeView项高的方法(改变Delegate行高,或者::data取数据的时候,根据Qt::SizeHintRole进行判断)
很久之前写过一篇关于QTreeView快速显示超过千万条数据项的方法,如果说那篇文章讲的是QTreeView的内功的话,今天这篇是讲QTreeView的外功,有时我们想改变视图的数据项的行高,那怎么办 ...
- POJ 1226 Substrings(后缀数组+二分答案)
[题目链接] http://poj.org/problem?id=1226 [题目大意] 求在每个给出字符串中出现的最长子串的长度,字符串在出现的时候可以是倒置的. [题解] 我们将每个字符串倒置,用 ...
- hdu 4741 Save Labman No.004(2013杭州网络赛)
http://blog.sina.com.cn/s/blog_a401a1ea0101ij9z.html 空间两直线上最近点对. 这个博客上给出了很好的点法式公式了...其实没有那么多的tricky. ...
- NSArray 与 NSMutableArray 的排序
由于集合的使用过程中,经常需要对数组进行排序操作,此博客用于总结对在OC中对数组排序的几种方法 1.当数组中存放的是Foundation框架中提供的对象时,直接使用 compare:方法 如:NSSt ...
- 如何在内存中压缩并加密ZIP
项目中遇到了一个问题,考虑到安全原因,需要将文件以二进制数据的方式打包成压缩文件,并且这个压缩文件是有密码的. 去Google上找了些API,下载来看了下,琢磨出了以下方法 首先放API: <! ...