建立可編輯的xml文件 之二 過濾xml 資料

2021-04-17 00:41:51 字數 2969 閱讀 8578

過濾

xml資料:

讓我們在假設一下,如果在乙個真實的聯絡應用程式中,使用者可能不希望在分級的treeview中看到「email」,」city 」 或者「country」,他們可能更希望看到頂級的使用者聯絡身份內容,例如alex, rebekah, 或者justin,既然這樣聯絡點的相應的詳細資訊(email,city )就處於相鄰的可以編輯的區域,類似的使用者也可能希望通過上下拖拉樹節點來重新排列他們,然而在個體聯絡點內部通過treeview控制項移動email 位址或者city 是沒有意義的。人們通常希望用乙個分等級的檢視去組織資料,而不簡單的是對他們進行分類,換句話對聯絡(contact)進行重新排序分組是很正常的要求,除非city 和country 元素與指定聯絡的關聯是很清晰,而且你可能希望單獨的處理他們,而不是把他們進行分組分對。xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

乙個很好的解決方案是當顯示聯絡樹時隱藏子節點,例如你可以為email. address等不想顯示的子元素新增乙個特殊的屬性(例如view=」hide」),這樣在組裝樹控制項時在組裝方法中設定這個特殊屬性,從而可以忽略任何元素(包括他們的子節點),雖然這樣可以工作,但是改變資料來源來適合使用者顯示不是乙個很可靠的設計思路

乙個更好的思路是在給定的文件內部為資料客戶定義分級檢視是否可見的結構,你可以通過修改populatetreecontrol()

方法以使它支援xpath 例如:

[c#]

private void populatetreecontrol(system.

xml.

xmlnode document,

system.windows.forms.treenodecollection 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文件基本結構的很有效的方法。既然這樣乙個簡單的查詢就已經足夠了,除非你需要進行更複雜的操作

vim之二 vim文件編輯

在普通模式下.小數點 表示重複上一次的命令操作 拷貝測試檔案到本地目錄 cp etc protocols 開啟檔案進行編輯 vim protocols普通模式下輸入x,刪除第乙個字元,輸入.小數點 會再次刪除乙個字元,除此之外也可以重複dd的刪除操作 進入普通模式輸入n,n表示重複後面的次數,下面來...

如何將PDF轉為可編輯的Word文件

在使用pdf文件內容的時候,通常都會將pdf先轉換成word格式,因為word文件的內容易用編輯,使用起來也方便。所以很多人會將pdf文件轉為word格式,雖然方法有很多,但是通過不同途徑轉換出來的結果也是會有不同,與原pdf檔案或多或少有些出入。那如何最大限度的將pdf完整轉換為word文件呢?如...

建立格式良好的XML文件(上篇)

本文摘自 前言 xml聽起來,看起來就是一本標記語言,但是它確實是乙個很大的話題,值得我們去研究的 感謝大家對前一篇xml文章的關注 建立格式良好的xml文件,其實就是使得我們的xml文件能夠符合w3c的xml1.0規範,相信大家也想看w3c條條框框的規範,我們就從實際出發,來說說,怎麼樣寫xml文...