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

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

創(chuàng)建可編輯的xml文檔(之4) 刪除、改名、插入設(shè)置

[摘要]執(zhí)行刪除、改名、插入操作 實(shí)現(xiàn)了拖放操作就已經(jīng)完了最難的部分,但是出于完整性考慮,還應(yīng)該提供一些更好的基本的編輯功能。下面僅僅用四行代碼就可以實(shí)現(xiàn)刪除操作:[C#] string xpath_query = buildXPathQuery(this.SelectedNode);...
執(zhí)行刪除、改名、插入操作
實(shí)現(xiàn)了拖放操作就已經(jīng)完了最難的部分,但是出于完整性考慮,還應(yīng)該提供一些更好的基本的編輯功能。下面僅僅用四行代碼就可以實(shí)現(xiàn)刪除操作:
[C#]
string xpath_query =
buildXPathQuery(this.SelectedNode);
System.Xml.XmlNode node =
xml_document.DocumentElement.SelectSingleNode(
xpath_query);
node.ParentNode.RemoveChild(node);
SelectedNode.Remove();



[VB]
Dim xpath_query As String = _
buildXPathQuery(Me.SelectedNode)
Dim node As System.Xml.XmlNode = _
xml_document.DocumentElement.SelectSingleNode( _
xpath_query)
node.ParentNode.RemoveChild(node)
SelectedNode.Remove()
重命名操作需要更多的一些考慮,你可以調(diào)用buildXPathQuery 去查找那個文件夾正在被編輯,還有如何確定是哪一個屬性,如何確定被顯示名稱相應(yīng)的返回結(jié)構(gòu)的元素或者子元素?這是一個誤導(dǎo)的問題,XPath filte函數(shù)已經(jīng)被定義了,你只需應(yīng)用現(xiàn)面的轉(zhuǎn)換就可以了:
[C#]
private void XmlTreeView_AfterLabelEdit(object sender,
System.Windows.Forms.NodeLabelEditEventArgs e)
{
string xpath_query = buildXPathQuery(e.Node);
System.Xml.XmlNode node =
xml_document.DocumentElement.SelectSingleNode(
xpath_query);
System.Xml.XmlNode label =
node.SelectSingleNode(xpath_filter);
label.Value = e.Label;
}



[VB]
Private Sub XmlTreeView_AfterLabelEdit( _
ByVal sender As Object, _
ByVal e As
System.Windows.Forms.NodeLabelEditEventArgs) _
Handles MyBase.AfterLabelEdit

Dim xpath_query As String = buildXPathQuery(e.Node)
Dim node As System.Xml.XmlNode = _
xml_document.DocumentElement.SelectSingleNode( _
xpath_query)
Dim label As System.Xml.XmlNode =
node.SelectSingleNode(xpath_filter)
label.Value = e.Label
End Sub
最后一個挑戰(zhàn)就是如何按照需求創(chuàng)建一個新的文件夾。query filter 允許用戶用一組文件夾而不是xml元素操作xml文檔。這樣對你想在那些文件夾周圍進(jìn)行移動很有幫助的,而且它還可以告訴在哪里插入一個文件夾,但是它不能告訴你這個文件夾應(yīng)該包含什么東西,你應(yīng)該猜測文檔中的所有文件夾是否含有相同的結(jié)構(gòu)或者內(nèi)容。但是我們的目標(biāo)是創(chuàng)建一個不需要任何預(yù)定的顯示xml 方法。因此,我選擇將這些怎人委托給應(yīng)用程序控制。例如,客戶端代碼可以下面這樣寫:
[C#]
System.Xml.XmlDocument insert_fragment =
new System.Xml.XmlDocument();
insert_fragment.LoadXml(
"<product id='New Item'>" +
"<description/><ordercode/><price/>" +
"<image/></product>");

// The TreeView uses XmlInsertionNode to add
// a new folder to the tree's underlying XML
// document on request
xmlTreeView1.XmlInsertionNode =
insert_fragment.DocumentElement;



[VB]
Dim insert_fragment As New System.Xml.XmlDocument()
insert_fragment.LoadXml(" & _
"<product id='New Item'>" & _
"<description/><ordercode/>"<price/>" & _
"<image/></product>")
xmlTreeView1.XmlInsertionNode = _
insert_fragment.DocumentElement
treeview 控件可以緩存一個結(jié)構(gòu)的副本,將它作為一個臨時變量來創(chuàng)建一個新的文件夾集合。你所要做的僅僅是確保被定義得文件夾可以被filter query 識別,否則treeview 將不能顯示它。因?yàn)閷τ谖覀儾僮鞯奈臋n,xml通常是外部的(external)。在我使用它之前需要導(dǎo)入到文檔中


[C#]
// First you need to clone the node template, and
// import it, because it originates from a different
// document
System.Xml.XmlNode copy_node = new_node.Clone();
System.Xml.XmlNode insert_node =
xml_document.ImportNode(copy_node, true);

// Next locate which node should be its parent, and
// insert it
string xpath_query =
buildXPathQuery(this.SelectedNode);
System.Xml.XmlNode node =
xml_document.DocumentElement.SelectSingleNode(
xpath_query);
node.AppendChild(insert_node);

// Finally, apply the xpath filter to determine what
// to display
System.Xml.XmlNode expr =
insert_node.SelectSingleNode(xpath_filter);
System.Windows.Forms.TreeNode new_child =
SelectedNode.Nodes.Add(expr.Value);
populateTreeControl(insert_node, new_child.Nodes);

// Select the node, to force the tree to expand
SelectedNode = new_child;

// And start editing the new folder name
suppress_label_edit = false;
new_child.BeginEdit();



[VB]
' First you need to clone the node template, and
' import it, because it originates from a different
' document.
Dim copy_node As System.Xml.XmlNode = new_node.Clone()
Dim insert_node As System.Xml.XmlNode = _
xml_document.ImportNode(copy_node, True)

' Next locate which node should be its parent,
' and insert it
Dim xpath_query As String = _
buildXPathQuery(Me.SelectedNode)
Dim node As System.Xml.XmlNode =
xml_document.DocumentElement.SelectSingleNode( _
xpath_query)
node.AppendChild(insert_node)

' Finally, apply the xpath filter to determine what
' should be
' displayed
Dim expr As System.Xml.XmlNode = _
insert_node.SelectSingleNode(xpath_filter)
Dim new_child As System.Windows.Forms.TreeNode = _
SelectedNode.Nodes.Add(expr.Value)
populateTreeControl(insert_node, new_child.Nodes)

' Select the node, to force the tree to expand
SelectedNode = new_child

' And start editing the new folder name
suppress_label_edit = False
new_child.BeginEdit()


主站蜘蛛池模板: 亚洲欧洲免费视频 | 日本高清色www | 伊人啪啪 | 伊人影库 | 欧美综合一区二区三区 | 午夜欧美日韩在线视频播放 | 一区二区三区在线免费视频 | 中文字幕伦伦在线中文字 | 在线观看欧美日韩 | 欧美四虎影院 | 日本永久免费 | 欧美影院在线观看在线观看看 | 日韩国产成人资源精品视频 | 日韩毛片在线视频 | 一级一级 a爱片免费视频 | 亚洲免费视频在线观看 | 天天操天天干天天透 | 最新中文字幕一区二区乱码 | 欧美呦呦| 欧美性生活一级 | 日韩第一页在线观看 | 日本成人精品 | 四虎在线免费 | 青青青国产在线观看免费网站 | 日本道久久 | 日本一区二区三区免费高清在线 | 午夜视频久久久久一区 | 日韩高清成人毛片不卡 | 色老头久久久久 | 婷婷久 | 五月激情丁香婷婷综合第九 | 青娱乐在线国产 | 五月天婷婷亚洲 | 天天看天天干 | 中文字幕欧美在线 | 日韩中文字幕高清在线专区 | 天天看片天天操 | 香港三级理论在线观看网站 | 午夜视频成人 | 深爱激情小说网 | 亚洲综合色丁香婷婷六月图片 |