轉(zhuǎn)換表格的時(shí)候應(yīng)該有選項(xiàng)的(光標(biāo)一般放置在外層表格區(qū)域),如圖,取消 轉(zhuǎn)換嵌套表格。
閬中網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,閬中網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為閬中近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的閬中做網(wǎng)站的公司定做!
當(dāng)然,對(duì)于特別復(fù)雜及不規(guī)則的表格(粘貼過程中也可能導(dǎo)致表格錯(cuò)亂),用FRONTPAGE調(diào)整一下也是不錯(cuò)的主意。
參考文獻(xiàn):OFFICE XP測試
你的xml文字有錯(cuò)誤,正確的如下: ?xml version="1.0"? grouplist group name="1" server name="1.1"/ server name="2.2"/ /group group name="2" server name="2.1"/ server name="2.2"/ /group /grouplist 以下是在vs2008下調(diào)試成功 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim tvw As TreeView Dim x As New Xml.XmlDocument Dim nd As Xml.XmlNode Dim pcnd As TreeNode Dim I As Integer Dim II As Integer tvw = New TreeView tvw.Parent = Me tvw.SetBounds(10, 10, 300, 300) x.Load("該處為xml文件路徑") '如 C:\\abc.xml For I = 1 To x.DocumentElement.ChildNodes.Count nd = x.DocumentElement.ChildNodes(I - 1) pcnd = tvw.Nodes.Add("G" I.ToString, nd.Attributes(0).Value) For II = 1 To nd.ChildNodes.Count pcnd.Nodes.Add(nd.ChildNodes(II - 1).Attributes(0).Value) Next pcnd.Expand() Next End Sub End Class
希望采納
萬事俱備,我們先用VB和MSXML的COM接口的DOM實(shí)現(xiàn)的一個(gè)例子來對(duì)XML操作進(jìn)行初步的了解吧。首先聲明下面要用的幾個(gè)對(duì)象的變量:Dim tempdoc As DOMDocument
Dim tempnode As IXMLDOMNode
Dim tempelement As IXMLDOMElement
Dim tempattribute As IXMLDOMElement
Dim root As IXMLDOMElement文檔對(duì)象模型(DOM)使用了一系列相應(yīng)的對(duì)象描述了XML文檔的等級(jí)狀態(tài),DOMDocument類是一個(gè)描繪XML文檔的DOM結(jié)構(gòu)的MSXML類。DOMDocument類僅僅提供了很少的幾個(gè)有用的屬性和方法,例如:Load方法載入一個(gè)xml文件,loadxml方法將字符串作為xml數(shù)據(jù)添加到對(duì)象中。DOMDocument的xml屬性返回文檔的xml描述,可以顯示這些返回值看看這些文檔究竟是什么樣子,也可以將它存儲(chǔ)為一個(gè)文件,DOMDocument對(duì)象的documentElement屬性表示文檔數(shù)據(jù)的根結(jié)點(diǎn),通常情況下操作XML文檔都從這里開始。DOMDocument提供了幾種創(chuàng)建新節(jié)點(diǎn)的方法。CreateElement方法為文檔創(chuàng)建一個(gè)新的元素節(jié)點(diǎn),其他創(chuàng)建節(jié)點(diǎn)的方法有createAttribute, createProcessingInstruction, 和 createTextNode,在這里就不一一介紹了。IXMLDOMNode類描述了一個(gè)節(jié)點(diǎn),該類提供了一系列用于搜索和操縱XML文檔的屬性和方法。selectSingleNode 方法用于搜索指定節(jié)點(diǎn)的后代,用于搜索指定節(jié)點(diǎn)路徑的語言稱為XPATH,XPATH非常棘手,本文就不詳細(xì)說明其規(guī)范了。在IXMLDOMNode對(duì)象中,有許多有用的屬性值:attributes.節(jié)點(diǎn)屬性集合
nodeName.節(jié)點(diǎn)的標(biāo)記名
nodeTypeString.節(jié)點(diǎn)的類型
ownerDocument.返回DOMDocument對(duì)象包含的節(jié)點(diǎn)
text.表示節(jié)點(diǎn)包含的文本內(nèi)容。如果該節(jié)點(diǎn)包含其他節(jié)點(diǎn),那么text代表了所有節(jié)點(diǎn)的文本內(nèi)容的組合。
xml.給出了節(jié)點(diǎn)的xml內(nèi)容,例如:"<Email>hongwanfu@yahoo.com</Email>".ChildNodes集合包含了節(jié)點(diǎn)的子節(jié)點(diǎn)。要給節(jié)點(diǎn)增加一個(gè)子節(jié)點(diǎn),首先必須給使用DOMDocument對(duì)象的節(jié)點(diǎn)創(chuàng)建方法,然后將這個(gè)新建的節(jié)點(diǎn)加入到父節(jié)點(diǎn)的childNodes集合中。 ChildNodes集合包含了節(jié)點(diǎn)的子節(jié)點(diǎn)。要給節(jié)點(diǎn)增加一個(gè)子節(jié)點(diǎn),首先必須給使用DOMDocument對(duì)象的節(jié)點(diǎn)創(chuàng)建方法,然后將這個(gè)新建的節(jié)點(diǎn)加入到父節(jié)點(diǎn)的childNodes集合中。由于每個(gè)節(jié)點(diǎn)類型都有不同的訪問方法和內(nèi)容限制,有時(shí)候使用特定類型的節(jié)點(diǎn)要比使用通用 IXMLDOMNode 對(duì)象更容易。要做到這一點(diǎn),需要使用 IXMLDOMElement 對(duì)象來處理 XML 數(shù)據(jù)元素和屬性。正如元素可以包含 XML 數(shù)據(jù)文件中的子元素、文本、注釋、處理說明、CDATA 部分和實(shí)體引用一樣,IXMLDOMElement 對(duì)象也可以包含 IXMLDOMElement、IXMLDOMText、IXMLDOMComment、IXMLDOMProcessingInstruction、IXMLDOMCDATASection 和 IXMLDOMEntityReference 對(duì)象??梢酝ㄟ^使用 IXMLDOMElement 對(duì)象的 getAttribute 和 setAttribute 方法來訪問屬性;或者通過 IXMLDOMElement 對(duì)象的 attributes 屬性,將屬性作為 IXMLDOMNamedNodeMap 對(duì)象進(jìn)行管理。有關(guān)使用這些方法和對(duì)象的詳細(xì)信息,請(qǐng)參閱 MSXML 4.0 SDK Help。接下來我們要做的是生成一個(gè)XML DOMDocument 對(duì)象 :Set tempdoc = New DOMDocument生成根節(jié)點(diǎn)并把它設(shè)置為文件的根 :Set root = tempdoc.createElement("Personal")
Set tempdoc.documentElement = root生成孩子節(jié)點(diǎn)添加到根節(jié)點(diǎn)上去,并且為這個(gè)節(jié)點(diǎn)設(shè)置一個(gè)屬性 :
Set tempnode = tempdoc.createNode(NODE_ELEMENT, "Web", "")
tempnode.Text = " "
root.appendChild tempnode取得元素節(jié)點(diǎn)的接口,添加屬性:Set tempelement = tempnode
tempelement.setAttribute "Type", "Homepage"最后,寫XML文件:Open "CreateXMLFile.xml" for output as #1
Print #1, root.XML
Close #1下面就是上面程序生成的CreateXMLFile.xml文件的內(nèi)容如圖:首先,建立一個(gè)名叫Personal.xml的文件:<?xml version="1.0" encoding="GB2312"?><個(gè)人信息><姓名>洪萬福</姓名><性別>男</性別><出生日期>1983年x月x日</出生日期><地址>福建省廈門市集美大學(xué)水產(chǎn)學(xué)院新區(qū)270#</地址><郵編>361021</郵編><QQ>24948251</QQ><個(gè)人主頁> </個(gè)人主頁></個(gè)人信息>其中,encoding="GB2312"是為了防止顯示中文時(shí)出現(xiàn)亂碼。接著,進(jìn)入Visual Basic 6,建立7個(gè)Label和7個(gè)TextBox, 具體如圖: 隨后,編寫如下代碼:Option Explicit
Private p_AppPath As String
Private Sub Form_Load()
' 獲得程序運(yùn)行目錄
p_AppPath = App.Path
If Right$(p_AppPath, 1) <> "\" Then p_AppPath = p_AppPath "\"
' 加載值
LoadValues
End SubPrivate Sub Form_Unload(Cancel As Integer)
' 保存現(xiàn)有的值
SaveValues
End SubPrivate Sub LoadValues() Dim xml_document As DOMDocument Dim values_node As IXMLDOMNode ' 載入文件 Set xml_document = New DOMDocument
xml_document.Load p_AppPath "Personal.xml"
If xml_document.documentElement Is Nothing ThenExit Sub End If '尋找節(jié)點(diǎn)
Set values_node = xml_document.selectSingleNode("個(gè)人信息")
' 讀取各個(gè)節(jié)點(diǎn)的值
txtName.Text = GetNodeValue(values_node, "姓名", "???")
txtSex.Text = GetNodeValue(values_node, "性別", "???")
txtBirthday.Text = GetNodeValue(values_node, "出生日期", "???")
txtAddress.Text = GetNodeValue(values_node, "地址", "???")
txtZip.Text = GetNodeValue(values_node, "郵編", "???")
txtQQ.Text = GetNodeValue(values_node, "QQ", "???")
txtHomepage.Text = GetNodeValue(values_node, "個(gè)人主頁", "???")End Sub' 返回各個(gè)節(jié)點(diǎn)的值Private Function GetNodeValue(ByVal start_at_node As IXMLDOMNode, ByVal node_name As String, _Optional ByVal default_value As String = "") As String Dim value_node As IXMLDOMNode
Set value_node = start_at_node.selectSingleNode(".//" node_name)
If value_node Is Nothing Then
GetNodeValue = default_value
Else
GetNodeValue = value_node.Text
End IfEnd Function' 保存現(xiàn)有的值Private Sub SaveValues()
Dim xml_document As DOMDocument
Dim values_node As IXMLDOMNode
' 建立XML文件
Set xml_document = New DOMDocument
Set values_node = xml_document.createElement("個(gè)人信息")
xml_document.appendChild values_node
CreateNode values_node, "姓名", txtName.Text
CreateNode values_node, "性別", txtSex.Text
CreateNode values_node, "出生日期", txtBirthday.Text
CreateNode values_node, "地址", txtAddress.Text
CreateNode values_node, "郵編", txtZip.Text
CreateNode values_node, "QQ", txtQQ.Text
CreateNode values_node, "個(gè)人主頁", txtHomepage.Text
' 保存XML文件
xml_document.save p_AppPath "Personal.xml"
End SubPrivate Sub CreateNode(ByVal parent As IXMLDOMNode, _ByVal node_name As String, ByVal node_value As String) Dim new_node As IXMLDOMNode
Set new_node = parent.ownerDocument.createElement(node_name)
new_node.Text = node_value
parent.appendChild new_node
End Sub運(yùn)行結(jié)果如下: 雖然,MSXML提供了從Visual Basic6.0加載和存儲(chǔ)XML文檔的工具,但是,對(duì)其的應(yīng)用要求程序員對(duì)VB和MSXML的COM接口有一定的認(rèn)識(shí),所以,并不是得到很廣泛的應(yīng)用。
作者:洪萬福出處:微軟社區(qū)責(zé)任編輯: 方舟 [ 2003-08-20 10:45 ] 本文為計(jì)劃將應(yīng)用程序更新到VB.NET的VB開發(fā)用戶提供一些關(guān)于XML的建議 Visual Basic.NET的出現(xiàn)大大改變了這個(gè)狀況,Visual Basic.NET提供了使用XML、XSL以及其他XML工具的完整工具,使用戶很輕松就能實(shí)現(xiàn)XML的應(yīng)用,甚至,在不用編寫代碼的情況下操作XML。ADO.NET是Microsoft新推出的.NET框架中用于數(shù)據(jù)訪問的組件,其最大的優(yōu)點(diǎn)就是使用XML作為傳送數(shù)據(jù)的標(biāo)準(zhǔn),只要有一個(gè)XML文本,就可以讀入ADO.NET的組件中,然后ADO.NET再以XML格式傳給數(shù)據(jù)庫或者其他組件。可以使用DataSet對(duì)象的ReadXML方法將一個(gè)XML文件讀入到DataSet中,這是一個(gè)重載的方法,有幾種語法格式,經(jīng)常用到的如下所示:ReadXML(FileName)其中,F(xiàn)ileName為XML文檔的名字,現(xiàn)在將前面創(chuàng)建的XML文本“Personal.xml”讀入到DataSet中。新建一個(gè)項(xiàng)目,在窗體上創(chuàng)建一個(gè)Button和一個(gè)DataGrid控件,雙擊Button1輸入以下代碼:Dim ds As New DataSet()'讀入XML文檔
ds.ReadXml("personal.xml")
Dim tb As DataTable
Dim dv As DataView
tb = ds.Tables(0)
dv = New DataView(tb)
Me.DataGrid1.DataSource = dv