最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
创建可编辑的xml文档(之二) 过滤xml 数据
时间:2008-01-12 编辑:简简单单 来源:一聚教程网
让我们在假设一下,如果在一个真实的联系应用程序中,用户可能不希望在分级的treeview中看到“email”,”city ” 或者“country”,他们可能更希望看到顶级的用户联系身份内容,例如Alex, Rebekah, 或者 Justin,既然这样联系点的相应的详细信息(email,city )就处于相邻的可以编辑的区域,类似的用户也可能希望通过上下拖拉树节点来重新排列他们,然而在个体联系点内部通过treeview控件移动 email 地址或者city 是没有意义的。人们通常希望用一个分等级的视图去组织数据,而不简单的是对他们进行分类,换句话对联系(contact)进行重新排序分组是很正常的要求,除非city 和country 元素与指定联系的关联是很清晰,而且你可能希望单独的处理他们,而不是把他们进行分组分对。
一个很好的解决方案是当显示联系树时隐藏子节点,例如你可以为email. Address等不想显示的子元素添加一个特殊的属性(例如view=”hide”),这样在组装树控件时在组装方法中设置这个特殊属性,从而可以忽略任何元素(包括他们的子节点),虽然这样可以工作,但是改变数据源来适合用户显示不是一个很可靠的设计思路
一个更好的思路是在给定的文档内部为数据客户定义分级视图是否可见的结构,你可以通过修改populateTreeControl() 方法以使它支持xpath 例如:
[C#]
private void populateTreeControl(System.Xml.XmlNode document,
System.Windows.Forms.TreeNodeCollection nodes)
{
foreach (System.Xml.XmlNode node in
document.ChildNodes)
{
System.Xml.XmlNode expr =
node.SelectSingleNode(xpath_filter);
if (expr != null)
{
TreeNode new_child = new
TreeNode(expr.Value);
nodes.Add(new_child);
-
上一个: XML入门精解-------结构与语法
-
下一个: XML指南――微软的XML解析器
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10
- .NET使用YARP通过编码方式配置域名转发实现反向代理教程 10-10