六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

創建可編輯的xml文檔(之二) 過濾xml 數據

[摘要]過濾xml 數據:讓我們在假設一下,如果在一個真實的聯系應用程序中,用戶可能不希望在分級的treeview中看到“email”,”city ” 或者“country”,他們可能更希望看到頂級的用戶聯系身份內容,例如Alex, Rebekah, 或者 Justin,既然這樣聯系點的相應的詳細信息(e...
過濾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);
populateTreeControl(node, new_child.Nodes);
}
}
}



[VB]
Private Sub populateTreeControl( _
ByVal document As System.Xml.XmlNode, _
ByVal nodes As
System.Windows.Forms.TreeNodeCollection)

Dim node As System.Xml.XmlNode
For Each node In document.ChildNodes
Dim expr As System.Xml.XmlNode = _
node.SelectSingleNode(xpath_filter)

If Not (expr Is Nothing) Then
Dim new_child As New TreeNode(expr.Value)
nodes.Add(new_child)
populateTreeControl(node, new_child.Nodes)
End If
Next
End Sub
在類級別范圍上添加下面的行:



[C#]
private string xpath_filter =
"@id[parent::contacts or parent::contact]";



[VB]
Private xpath_filter As String = _
"@id[parent::contacts or parent::contact]"


你可以使用xpath查詢返回的結果來決定是否遞歸調用裝入子節點,這個查詢建立了一個包含規則,讀“Select the id attribute of any 'contacts' or 'contact' element.",同樣你也可以使用一個排除規則去確定你需要拒絕哪一個數據。

attribute::id[not(parent::email or
parent::city or parent::country)]
這不是一個通用的解決方案,但是像這樣基于父子關系的過濾比基于沒有限制的節點或者屬性要好很多,當用戶擁有充足的可編輯權限而不妨礙它的層次時,這是一個表達一個xml文檔基本結構的很有效的方法。既然這樣一個簡單的查詢就已經足夠了 ,除非你需要進行更復雜的操作


主站蜘蛛池模板: 天天擦天天干 | 亚欧免费视频 | 欧洲中文字幕 | 五月激激激综合网色播胖胖 | 色九九视频| 手机国产乱子伦精品视频 | 欧日韩不卡在线视频 | 日本视频在线观看不卡高清免费 | 日产精品一卡2卡三卡4乱码久久 | 全免费午夜一级毛片一级毛 | 天天干免费视频 | 中文天堂在线最新版在线www | 日韩在线免费视频 | 涩涩久久 | 亚洲国产成人久久一区www | 色天使久久综合给合久久97色 | 青青青青青青青青草 | 亚洲男人的天堂视频 | 欧美性视频一区二区三区 | 最近免费观看高清韩国日本大全 | 欧美视频自拍偷拍 | 一级黄色免费观看 | 欧美视频手机在线 | 中文在线最新版天堂8 | 在线观看亚洲视频 | 亚洲图片国产日韩欧美 | 日本 韩国 三级 国产 欧美 | 亚洲天堂在线观看完整版 | 亚洲h在线观看 | 欧洲一级做a爱在线观看 | 亚洲永久网站 | 中文字幕视频在线观看 | 中文字幕一区波多野结衣 | 在线观看视频h | 亚洲日本免费 | 天天干天天舔天天操 | 色天使色护士 在线视频观看 | 日本爽爽爽爽爽爽在线观看免 | 热久久最新网址 | 亚洲欧美日韩一区高清中文字幕 | 日韩黄色毛片 |