-

 <?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. 全面修复IE,注册IE所有dll

    全面修复IE,注册IE所有dll 复制,粘贴到文本文档里,保存成.bat文件,双击运行. rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%\ ...

  2. SQL语言整理归纳

  3. C++/C#结构体转化-传string给C++

    此例是把C#结构传给C++ C++: typedef struct VidyoClientInEventGroupChat_ { /*! Message (contents) to be sent t ...

  4. 数据库MySQL多个数据库服务冲突

    一.目标名称 MySQL 二.目标版本 mysql-5.6.24-win32.1432006610.zip 三.环境信息 系统:windows 7 旗舰版 防火墙:关闭  —— 注意:如果防火墙不关闭 ...

  5. Oracle游标使用详解

    转自:http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html 声明游标:CURSOR cursor_name IS select_st ...

  6. Mysql 批量杀死进程

    正常情况下kill id,即可,但是有时候某一异常连接特别多的时候如此操作会让人抓狂,下面记录下小方法: use information_schema; select concat('kill ',i ...

  7. ubuntu 源码安装 swig

    1. 下载 swig 源码 http://www.swig.org/survey.html 填写一个简单的问卷,即可进入 sourceforge 下载. 2. 安装 g++ sudo apt-get ...

  8. T-SQL应用,视图、存储过程、触发器、游标、临时表等

    sqlserver常用操作: 视图.存储过程.触发器.函数 --*********************批处理********************* --[在一个批处理中存有一个语法错误,则所有 ...

  9. PDO简介

    php链接数据库 半年后需要更换mysql为集群模式或者有钱了升级oracl数据库,这时的改动相当大,成本高.如果再之前使用PDO,之后再遇见这样的问题就很轻松. 开启PDO: 打开php.ini文件 ...

  10. 7_Table Views

    7 // // ViewController.swift // Table Views // // Created by ZC on 16/1/9. // Copyright © 2016年 ZC. ...