一聚教程网:一个值得你收藏的教程网站

热门教程

创建可编辑的xml文档(之二) 过滤xml 数据

时间:2022-07-02 11:43:51 编辑:袖梨 来源:一聚教程网

过滤xml 数据:
让我们在假设一下,如果在一个真实的联系应用程序中,用户可能不希望在分级的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);

热门栏目