首页 新闻 会员 周边

dataset数据筛选性能问题

0
悬赏园豆:30 [待解决问题]

现在有一堆xml文件,我要通过一定的规则将每个xml文件里的数据筛选出来.筛选数据分有效的无效的.筛选后有效数据的无效数据各另存为一个xml文件.规则也是xml文件.规则有:节点不能不存在,节点值不能为空,节点值长度有限制(根据规则来,规划可以配置),节点值值前缀/后缀/值包含/值非前缀/值非后缀/值不包含,值是否区分大小写,以及支持正则表达式匹配.每个节点的数据都要根据规则去匹配,如果匹配成功,写入成功的xml,否则写入失败的xml且添加一个失败理由的节点,并说明失败理由.我现在的做法是首先将要筛选的xml数据读取至一个DataSet里并复制两个同样结构的dataset用以分别保存筛选成功后的数据,再循环DataSet里的所有行,循环体里再循环每个规则(则名是和节点名一样的)看是否匹配成功,匹配成功的行放入(用ImportRow方法)成功的dataset,否则放入匹配失败的dataset里,直到循环完成后,再将两个dataset输出保存成xml文件.现在这种做法一万条数据用时大约330ms,我觉得此种方式效率不太好(要循环所有行,再循环规划,相当于行里再循环所有列),各位有没有更好的方法来做.我尝试用DataTable.select()来做,但是sql不支持正则和大小写之类的

it_wlt的主页 it_wlt | 初学一级 | 园豆:120
提问于:2011-08-02 11:30
< >
分享
所有回答(1)
0

关于正则表达式和大小写,大小写是支持的,需要把IsCaseSensitive(大概是这个)这个属性设一下。但它只支持数据的大小写,不支持架构的大小写。正则表达式在select()方法里面是不支持的。

刘鸿海 | 园豆:655 (小虾三级) | 2011-08-02 13:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册