-

 <?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搜索、匹配的更多相关文章

  1. (转载)MySQL LIKE 用法:搜索匹配字段中的指定内容

    (转载)http://www.5idev.com/p-php_mysql_like.shtml MySQL LIKE 语法 LIKE 运算符用于 WHERE 表达式中,以搜索匹配字段中的指定内容,语法 ...

  2. 基于Vuejs的搜索匹配功能

    最近一直在看vue,查了很多资料,看了很多文档和博客,大概半知半解了,然后利用所理解的知识写了一个简单的搜索匹配功能. 大概长这个样子:   <!DOCTYPE html> <htm ...

  3. WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配

    原文:WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 网上的 ...

  4. Flex的正则表达式匹配速度与手工代码的比较

    flex是一个词法分析器生成器,它是编译器和解释器编程人员的常用工具之一.flex的程序主要由一系列带有指令(称为动作代码)的正则表达式组成.在匹配输入时,flex会将所有的正则表达式翻译成确定性有穷 ...

  5. Flex XML

    一.创建XML类 1.把字符串对象转换为XML: var xmlStr:String="<students><student><name>吕布</n ...

  6. phpstorm搜索匹配正则表达式

    data-position=".................................................................." 点是匹配任意一 ...

  7. Flex XML/XMLList 常用操作

    1       XML.XMLList操作 Flex对xml提供了很多强大而灵活的操作.相对于其他语言,flex对xml的格式要求不那么苛刻,只要符合基本格式语法的字符串,flex能非常简单的转换成x ...

  8. 012-elasticsearch5.4.3【五】-搜索API【一】搜索匹配所有matchAllQuery、全文查询[matchQuery、multiMatchQuery、commonTermsQuery、queryStringQuery、simpleQueryStringQuery]

    一.概述 查询所使用的 QueryBuilders来源于以下 import static org.elasticsearch.index.query.QueryBuilders.*; 请注意,您可以使 ...

  9. iOS 模糊、精确搜索匹配功能方法总结 By HL

    字符串搜索主要用于UITableView的搜索功能的筛选,过滤,查询 下面是一些流行的搜索查询方法 一.遍历搜索 for循环 根据要求:精确搜索(判读字符串相等)   模糊搜索(字符串包含) 相关知识 ...

随机推荐

  1. mysql之数据库特性认识

    最近面试经常被面试官问道关于数据库方面的知识,于是总结一下面试官问的题以及自己对数据库的认识 1.之前百度面试官问了我一个特别基础的sql问题:如何清除表的所有记录,以前在学校做项目开发的时候有使用过 ...

  2. prime算法求最小生成树(畅通工程再续)

    连着做了四道畅通工程的题,其实都是一个套路,转化为可以求最小生成树的形式求最小生成树即可 这道题需要注意: 1:因为满足路的长度在10到1000之间才能建路,所以不满足条件的路径长度可以初始化为无穷 ...

  3. Linux下Apache重启遇到No space left on device错误的解决方法

      解决办法:1.输入:ipcs -s 看有没有超过5个,如果有请执行下面2的命令:2.ipcs -s | perl -ane '/^0x00000000/ && `ipcrm -s ...

  4. MarkDown使用 (二)矩阵

    MarkDown的矩阵输入 MarkDown的矩阵输入 简单的Matrix 例如 $$ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ ...

  5. 如何取消一个本地svn目录与svn的联系(即恢复原有图标等)

    在使用svn 的时候容易手抖错选update地址,使其目录所有同级文件夹上出现蓝色“?”图样,非常烦人,下面记录一下解决方案. 首先在该目录下打开同级文件件,工具→文件夹选项→查看→隐藏文件和文件夹→ ...

  6. QT显示如何减轻闪屏(双缓冲和NoErase)

    很多同志在些QT 程序后会遇见闪屏的问题, 有时速度非常快,但毕竟影响了显示效果,如何做到减轻屏幕抖动或闪屏呢?我曾试过如下的办法:1.使用双缓冲. 比如我们在一个Widget里面绘多个图的话, 先创 ...

  7. rsyslog 不打印日志到/var/log/messages

    *.info;mail.none;authpriv.none;cron.none;local3.none /var/log/messages 表示 所有来源的info级别都记录到/var/log/me ...

  8. Google AdSense的CPC点击单价超百度联盟(2014)

    很久没有关注AdSense了,一是访问不太方便,二是网站投放AdSense广告相当少,估计每天收入都不到1美元,所以就懒得去看了,一般都是几个月才去看一看. AdSense还行吗? AdSense点击 ...

  9. iOS判断机型

    #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> typedef NS_OPTIONS(NSInteger,D ...

  10. 命令行方式运行yii2程序

    测试环境,yii 2.0.3版本 web访问方式,控制器放在controllers目录下 ,浏览器访问如下地址 http://127.0.0.1/index.php?r=[controller-nam ...