ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:21.21KB ,
资源ID:8594848      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8594848.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(利用VB操作XML数据Word格式文档下载.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

利用VB操作XML数据Word格式文档下载.docx

1、 开始和结束标记必须相同,XML是识别大小写的,所以标记的大小写也必须相同。比如上面的例子中以Phone标记开始就必须以/Phone标记结束,而不能是/phone或/PHONE 节点标记中可以包含属性,比如下面的代码中Phone节点包含属性Type,其值为WorkFax:Phone Type=WorkFax987-654-3210Phone 如果不愿意在节点中包含一个值,那么可以不需要结束标记,可以用在开始标记的后面加一个斜线来结束节点,在下面的例子中,Phone标记的Number属性就存储了一个电话号码,所以就不需要一个结束标记: Number=987-654-3210 / XML文档的结构

2、是一个树形等级结构。文档必须有一个唯一的根结点,根节点包含所有其它节点。下面我们举一个较为完整的例子:Addresses Entry Type=Personal FirstNameAndy/FirstName LastNameFickle/LastName Street1234 Programmer Place/Street CityBugsville/City StateCO/State Zip82379/Zip Phone Type=Home354-493-9489/Phone /Entry Work FirstNameBetty/FirstName LastNameMasterson/L

3、astName 937-878-4958/Phone 937-878-4900/Phone . /Addresses 注意相似的节点不需要包含相同的信息,例如第一个Entry节点包含了地址信息和家庭电话号码,第二个Entry节点包含了Work和WorkFax电话号码,而没有包含第一个Entry节点包含的信息。XML工具 如前面的例子显示,XML语法是如此的简单以至于你可以在很短的时间作一个XML解析器,幸运的是你不必这样做,因为XML工具可以运行在各种平台上,包括可以安装了Visual Basic的Windows。 正是这些L工具而不是XML本身使XML变得更强大和复杂。不同的解析器使你可以某

4、一时刻加载整个XML文档或只加载某个节点,与此相反,XML Writer 可以同时创建一个XML文档和节点。 DOM解析器使我们能够很方便的加载、复制、排序、修改和存储XML文件,遍历节点获得名称或属性,并给结果排序。虽然他们的功能没有真正的关系数据库强大,但DOM的这些特点依然非常有用。 XSD可以定义XML文档的格式,XSL扩展样式单定义了怎样将XML文档转换成其他可以在WEB浏览器中浏览的文件格式,比如HTML文件。 这些工具实际上比XML本身更复杂,所以所有讲解XML的书籍都花了很大的篇幅解释这些XML工具。但这超出了本文的范围,有兴趣的读者可以参考有关资料。 Visual Basic

5、.Net提供了使用XML、XSL以及其他XML工具的完整工具。但不用等待VB.NET,微软XML核心服务(MSXML)版本4.0提供了从Visual Basic6.0加载和存储XML文档的工具。 在 Basic 6.0中使用Microsoft XML V4.0象引用其他对象一样,首先在工程菜单中选择引用菜单项,选择Microsoft V4.0,单击OK,一切完成后就现在就可以在VB应用程序中添加XML对象了。DOMDocument 类 文档对象模型(DOM)使用了一系列相应的对象描述了XML文档的等级状态,DOMDocument类是一个描绘XML文档的DOM结构的MSXML类。 DOMDocu

6、ment类仅仅提供了很少的几个有用的属性和方法。Load方法载入一个xml文件,loadxml方法将字符串作为xml数据添加到对象中。例如,下面的代码就将一个小的xml文件添加到名为xml_document的文档中。Dim xml_document As New DOMDocument xml_document.loadXML _ Person & vbCrLf & _ FirstNameRod/FirstName LastNameStephens/LastName/Person DOMDocument的xml属性返回文档的xml描述,可以显示这些返回值看看这些文档究竟是什么样子,也可以将它存

7、储为一个文件,但这完全不必要,因为DOMDocument对象的save方法已经自动将他们存储了。 DOMDocument对象的documentElement属性表示文档数据的根结点,通常情况下操作XML文档都从这里开始。 DOMDocument提供了几种创建新节点的方法。CreateElement方法为文档创建一个新的元素节点,其他创建节点的方法有createAttribute, createProcessingInstruction, 和 createTextNode,在这里就不一一介绍了。IXMLDOMNode类 IXMLDOMNode类描述了一个节点,该类提供了一系列用于搜索和操纵XML

8、文档的属性和方法。selectSingleNode 方法用于搜索指定节点的后代,用于搜索指定节点路径的语言称为XPATH,XPATH非常棘手,本文就不详细说明其规范了。下面我们将介绍两个对搜索子节点有特别有用并且简单的方法。 在给selectsingleNode方法中输入子节点的名字,该方法将在节点的子节点进行精确匹配搜索。如果在输入的字符串前面加上./,那么将搜索节点的全部后代。 Search for a child node named LastName.Set last_name_node = address_node.selectSingleNode(LastName) Search

9、for any descendant named ./LastName 下面列出了IXMLDOMNode对象的部分非常有用的属性: attributes.节点属性集合 nodeName.节点的标记名 nodeTypeString.节点的类型 ownerDocument.返回DOMDocument对象包含的节点 text.表示节点包含的文本内容。如果该节点包含其他节点,那么text代表了所有节点的文本内容的组合。 xml.给出了节点的xml内容,例如:FirstNameRod/FirstName. ChildNodes集合包含了节点的子节点。要给节点增加一个子节点,首先必须给使用DOMDocum

10、ent对象的节点创建方法,然后将这个新建的节点加入到父节点的childNodes集合中。下面的代码展示了创建一个新的子节点的子程序,并使用父节点的appendChild方法将其加入到父节点中: Add a new node to the indicated parent node. Private Sub CreateNode(ByVal indent As Integer, _ ByVal parent As IXMLDOMNode, ByVal node_name As String, _ ByVal node_value As String) Dim new_node As IXMLDO

11、MNode Create the new node. Set new_node = parent.ownerDocument.createElement(node_name) Set the nodes text value. new_node.Text = node_value Add the node to the parent. parent.appendChild new_node End Sub SaveValues 程序 现在我们可以使用XML创建一个简单的程序(如图1),其值存储到XML文件中,在程序开始运行时,程序从VALUE.XML文件中加载数据,在程序运行结束时,将程序中的

12、现行值存入VALUE.XML文件中。 下面的代码是显示了VALUE.XML文件的结构:Values FirstNameRod/FirstName LastNameStephens/LastName Zip80276/Zip /Values List1显示了怎样编写SaveValues,当载入表单时,form_load事件触发LoadValues子程序。 LoadValues创建了一个名为xml_document的DOMDocument对象,然后载入xml文件,使用selectSingleNode方法查找名为values的节点,然后使用GetNodeValue方法获得从value节点后代中得到的

13、值。 GetNodeValue使用value节点的selectSingleNode方法寻找目标节点,如果节点不存在函数将返回一个缺省值,如果找到这个节点GetNodeValue将返回该节点的text值。对于value.xml文件中的数据节点,text仅仅是包含在节点中的文本内容。 当窗体卸载时触发form_unload事件,unload事件调用SaveValues子程序。程序创建一个新的DOMDocument对象,该对象创建一个新的名为value的节点,然后用文档的appendChild方法将节点添加到文档中。 在创建所有新的节点后,SaveValues调用DOMDocuments save方

14、法存储新的xml文件。 注意这个新的文件已经覆盖了旧文件,使用DOMDocument对象无法部分改变XML文件,可以加载XML文件,然后修改其中一部分,然后保存文件,但原文件将被完全覆盖。这是一个小的缺陷,但在这时可以使用其它程序进行修改。 List1的最后一部分是CreateNode子程序,CreateNode 为父节点创建一个新节点并同时给这个节点赋值。在这个子程序中首先引用一个DOMDocument对象,然后使用该对象的createElement方法创建一个新的节点。 createNode方法设置节点的text属性,然后将节点作为子节点添加到父节点中。 List1:Option Expl

15、icit Private m_AppPath As String Private Sub Form_Load() Get the applications startup path. m_AppPath = App.Path If Right$(m_AppPath, 1) Then m_AppPath = m_AppPath & Load the values. LoadValues Private Sub Form_Unload(Cancel As Integer) Save the current values. SaveValues Load saved values from XML.

16、 Private Sub LoadValues() Dim xml_document As DOMDocument Dim values_node As IXMLDOMNode Load the document. Set xml_document = New DOMDocument xml_document.Load m_AppPath &Values.xml If the file doesnt exist, then xml_document.documentElement is Nothing. If xml_document.documentElement Is Nothing Th

17、en The file doesnt exist. Do nothing. Exit Sub End If Find the Values section. Set values_node = xml_document.selectSingleNode(Values Read the saved values. txtFirstName.Text = GetNodeValue(values_node, FirstName, ?txtLastName.Text = GetNodeValue(values_node, txtStreet.Text = GetNodeValue(values_nod

18、e, StreettxtCity.Text = GetNodeValue(values_node, CitytxtState.Text = GetNodeValue(values_node, StatetxtZip.Text = GetNodeValue(values_node, Zip Return the nodes value. Private Function GetNodeValue(ByVal start_at_node As IXMLDOMNode, _ ByVal node_name As String, _ Optional ByVal default_value As St

19、ring = ) 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 Function Private Sub SaveValues() Create the XML document. Create the Values section node. S

20、et values_node = xml_document.createElement( Add the Values section node to the document. xml_document.appendChild values_node Create nodes for the values inside the Values section node. CreateNode values_node, , txtFirstName.Text , txtLastName.Text , txtStreet.Text , txtCity.Text , txtState.Text ,

21、txtZip.Text Save the XML document. xml_document.save m_AppPath &Private Sub CreateNode(ByVal parent As IXMLDOMNode, _ ByVal node_name As String, ByVal node_value As String) SaveValuesIndented 程序 虽然每个人都化了很大的精力去处理xml文档,使他们看上更容易些,但xml工具一般都忽略了那些使xml文档结构明显的空白和缩进,xml解析器也同样忽略缩进和空白。 不幸的是我们例子也同样忽略了这些缩进和空白,Sa

22、veValues创建了一个象下面那样的xml文件,所有的代码都在同一行中。ValuesFirstNameRod/FirstNameLastNameStephens/LastNa meStreet1234 Programmer Place/StreetCityBugsville/Ci tyStateCO/StateZip80276/Zip/Values VB.NET中包括了文本写入类,可以XML文档规定格式。但MSXML重没有这种功能,所以如果需要以一种清晰的格式保存XML文件,只能另行添加它的格式。 List2列出了程序SaveValuesIndented使用的代码,SaveValues子程序与上面例子中讲的几乎完全相同,但他在创建value节点后同时给XML文档创建了一个value标记的新行。 然后SaveValues 调用CreateNode创建一个新的数据节点,但在这里它传递给CreateNode一个新的参数,这个参数表示这个新节点的缩进方式。 CreateNode Add a new line. values_node.appendChild xml_document.createTextNode(vbCrLf) Values secti

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2