-

 <?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. setTimeOut和setInterval详解

    setTimeout和setInterval的语法相同.它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码.不过这两个函数还是有区别的 ...

  2. RecyclerView 小记

    RecyclerView,是在v7包加入的,一个灵活的view可以展示巨大的数据集,类似于listview的viewholder复用已经优化好了. 语言是苍白的,代码是最生动的叙说: 布局: < ...

  3. FileNameExtensionFilter文件过滤

    package com.soft.test; import javax.swing.*; import javax.swing.filechooser.*; import java.awt.event ...

  4. 利用 onload 事件监控跨站资源

    用过 CSP 的都很郁闷,上报的只有违规的站点名,却没有具体路径.这是缺陷,还是特意的设计? 显然,CSP 是为安全定制的,里面的规范自然要严格制定,否则就会带来新的安全问题.如果支持详细路径的上报, ...

  5. 几篇SIEM文章

    http://infosecnirvana.com/tag/siem-rule-types/ http://www.tripwire.com/state-of-security/security-da ...

  6. 深信服模式(先做减法,必须拜访客户三次、研究需求方向,把产品的问题控制住,快速反应,在未来十年,绝大部分业务都会搬到Internet上来,实现All on Internet)good

    深圳市盛凯信息科技有限公司与深信服合作多年,可以说是看着深信服“飞速”长大的.盛凯的总经理邓渊在采访中笑言:“他们(深信服)发展得太快,而我们发展得太慢.” 深信服的产品线已从最初只有VPN一条,到目 ...

  7. Delphi2010的RTTI增强

    Delphi编译的文件体积增大了很多.很大一部分原因是因为Delphi2010默认提供了全信息的RTTI. 每一个数据类型都有全部运行时信息.例如可以在运行时获得结构体的成员以及成员类型等. 这个功能 ...

  8. lambda表达式和闭包

    lambda表达式和闭包 熟悉的Javascript或者Ruby的同学,可能对另一个名词:闭包更加熟悉.因为一般闭包的示例代码,长得跟lambda差不多,导致我也在以前很长一段时间对这两个概念傻傻分不 ...

  9. [C/C++标准库]_[0基础]_[优先队列priority_queue的使用]

    std::priority_queue 场景: 1. 对于一个任务队列,任务的优先级由任务的priority属性指明,这时候就须要优先级越高的先运行.而queue并没有排序功能,这时priority_ ...

  10. TCP各种连接状态注释

    TCP各种连接状态注释  连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CL ...