`
hereson2
  • 浏览: 453780 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何通过VB处理XML

阅读更多
   1.  首先要引用一个Microsoft XML 随便选个版本。
   2. 在初始化的时候读取XML显示到TXTBOX中,代码如下:
      '通过2进制流将XML文件读出来,也可以是其它文件格式
      Private Function pstrUpdateView(istrXMLPath As String) As String
          Dim wlngFreeFile As Long
          Dim wbytwbytLoadBytes() As Byte
           '获得一个空闲文件号
           wlngFreeFile = FreeFile
           Open istrXMLPath For Binary As #wlngFreeFile
          ReDim wbytLoadBytes(1 To LOF(wlngFreeFile)) As Byte
          Get #wlngFreeFile, , wbytLoadBytes
           Close wlngFreeFile
         
           pstrUpdateView = StrConv(wbytLoadBytes, vbUnicode)
      End Function
   3. 装载XML。传进去一个XML地址,如果装载不成功就error,成功则执行下一步
      Private Sub fsubLoadXML(istrXMLPath As String)
          Set pobjXMLDoc = CreateObject("MSXML2.DOMDocument")
          If pobjXMLDoc.Load(istrXMLPath) = False Then
              On Error GoTo LoadXMLErr:
          End If
         
          On Error GoTo 0
          Exit Sub
      LoadXMLErr:
          Dim myErr
          Set myErr = pobjXMLDoc.parseError
          MsgBox ("ERROR:" & myErr.reason)
          Set myErr = Nothing
      End Sub
   4.
      读属性。DOMDocument对象里有2个读节点的方法:
         1.
            selectNodes() 如果根节点下有多个子节点就要用这个方法,item定义了第几个子节点
         2.
            selectSingleNode()如果根节点下只有一个字节点可以用这个方法

         1. Private Function fstrReadAttr(istrNodes As String, istrAttribute As String) As String
            On Error GoTo ErrHandle:
                Dim wobjXmlAttr As MSXML2.IXMLDOMAttribute
                '
            '     Set wobjXmlAttr = pobjXMLDoc.selectNodes(istrNodes).Item(0).Attributes.getNamedItem(istrAttribute)
                '
                Set wobjXmlAttr = pobjXMLDoc.selectSingleNode(istrNodes).Attributes.getNamedItem(istrAttribute)
                 fstrReadAttr = wobjXmlAttr.Text
               
                'destroy object
                Set wobjXmlAttr = Nothing
                On Error GoTo 0
                Exit Function
            ErrHandle:
                MsgBox Err.Description
                Set wobjXmlAttr = Nothing
            End Function
   5.
      读节点。 call fstrReadNode("/test/user") ,参数是test节点下的user子节点
      Private Function fstrReadNode(istrNodes As String) As String
          Dim xNode As MSXML2.IXMLDOMNode
          Set xNode = pobjXMLDoc.selectSingleNode(istrNodes)
           fstrReadNode = xNode.Text
          Set xNode = Nothing
      End Function
   6.
      写节点。参数1:节点;参数2:需要写入的值

      Private Sub fsubWriteNode(istrNodes As String, istrValue As String)
          Dim wobjXMLNode As IXMLDOMElement
         
          Set wobjXMLNode = pobjXMLDoc.documentElement.selectNodes(istrNodes).Item(0)

           wobjXMLNode.Text = istrValue

           Set wobjXMLNode = Nothing
      End Sub


MSXML 处理 xml 文档时外部DTD定义的问题(ASP)
项目中碰到这个问题,所以也贴了出来

xmlfile = "http://myserver/catalog.xml"
xslfile = "catalog.xsl"

' 创建相关对象
Set xslDoc = server.CreateObject("MSXML2.FreeThreadedDOMDocument")
Set xmlDoc = server.CreateObject("MSXML2.DOMDocument")

' 读取xsl文件
xsldoc.async = False
xsldoc.resolveExternals = True
xsldoc.load server.MapPath(xslfile)
' 读取xml文件
xmldoc.setProperty "ServerHTTPRequest",True  ' 设置ServerHTTPRequest 属性为 True 为了通过http协议载入xml文档
xmldoc.async = False ' 设置 async属性为 False 关闭异步调用
xmldoc.resolveExternals = True ' 设置 resolveExternals 为 True 打开外部DTD分析
xmldoc.validateOnParse = False ' 设置 validateOnParse 为 False 允许文档验证
xmldoc.load xmlfile ' 读取xml文档
Do While (xmldoc.ReadyState < 4)  ' 检查ReadyState状态值是否为4 ' 具体数值定义参见msxml sdk document
    xmldoc.waitForResponse 10 ' 通过waitForResponse方法等待文档完全读取完毕 ' 如果为读取完成,系统暂停10毫秒
Loop

' 转换xml -> html 并输出文档
xmldoc.transformNodeToObject xsldoc,Response

' 清空对象
Set xslt = Nothing
Set xsldoc = Nothing
Set xmldoc = Nothing
分享到:
评论

相关推荐

    一个很好的vb处理XML源码

    vb处理XML源码,一看就懂,非常实用,请大家下下吧

    vb xml处理类

    对dom对象进一步简化, 方便的打开、读取和修改xml文件

    XML集成订单处理系统源代码.rar_.net_VB .net_vb.net_vb.net xml_xml

    开发环境VB.NET XML集成订单处理系统源代码

    VB.NET 对XML文件读取和写入功能示例.rar

    此为一个VB.NET环境的XML文件操作示例,演示了两个基本的XML操作功能,读取和写入,在读取后,并对XML数据进行格式化处理,并将其显示在DataGridView控件中。同时还配合数据库,实现了XML数据对数据库数据的对应操作...

    VB源码:通过XML读取网页内容并分析取得需要的数据

    本程序演示了在VB种用XML对象读取远程网页的代码。 并通过HTMLDocument分析出网页的文本内容。 再通过分行识别处理的方法提取出所需要的网页数据。 源贴由CSDN的mylajilaji提出 主题是:如何提取网页的数据 ...

    VB6免控件实现HTTP请求并进行网页编码处理

    直接调用系统的WinHttp对象实现网页访问和提交数据。 不使用inet1控件和winsock控件,也不使用API函数,更不用xmlhttp这种卡顿的方式。...对网页编码支持UTF-8和Unicode以及GBK/gb2312的正常处理。

    Excel数据分析系统(vs2005 vb.net 内有说明文件 XML处理).rar

    vs2005 vb.net 内有说明文件 XML处理

    VB网络编程实例

    ◆ 193.htm 压缩 Html &lt;br/&gt;◆ 194.htm 用ASP、VB和XML建立互联网应用程序(1) ◆ 195.htm 用ASP、VB和XML建立互联网应用程序(2) ◆ 196.htm 用ASP、VB和XML建立互联网应用程序(3) ◆ 197.htm ...

    脚本可以批量去除XML文件中的<?xml version=“1.0“ encoding=“utf-8“?>

    脚本可以批量去除XML文件中的<?xml version=“1.0“ encoding=“utf-8“?>

    LINQ实战 linq to sql linq to xml 人民邮电出版社

    作为.NET上连接编程语言和数据库、内存对象、XML等各种类型数据之间的桥梁,LINQ引入了一种处理数据的全新理念,将查询无缝集成至开发语言之上。本书部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四...

    VB.NET入门经典第三版001

     掌握了这些知识后,读者就可以进一步研究数据库编程,使用Web窗体创建用于Web的ASP.NET应用程序,并了解XML的基础知识。最后,通过Web Services,还可以把在线提供的功能无缝地集成到自己的应用程序中。  本书...

    XML订单自动处理系统

    免费献源代码,让毕业设计的同学能方面,是用.NET做的,里面附带数据库文件,只要导入就可以使用

    xml集成订单处理系统源代码

    xml集成订单处理系统源代码

    VB增强搜索插件 v2.3.0.74 (完整压缩包)

    VB增强搜索插件 主要功能: 普通/模式搜索字符串 正则搜索、替换字符串 搜索结果列表 搜索结果相关代码预览 替换结果相关代码预览 可取消当前搜索操作 双击定位结果代码 更新记录: v2.3.0.74 调整过滤器应用...

    VB2010完美代码库

    * System.XML:包含了根据标准来支持XML处理的类。 * System.Data.OleDb:包含了一些操作OLEDB数据源的类型。 * System.Data.Sql:能使你枚举安装在当前本地网络的SQL Server实例。 * System.Data.SqlClient:包含了...

    VB_NET 编程实例教程

    第07章 程序调试和错误处理 第08章 ADO.NET及其应用 第09章Web Form的应用与开发 第10章 Web 服务的应用与开发 第11章 Visual Basic.NET与XML 第12章 创建Windows服务 第13章 创建其他工程 第14章 .NET线程 第15章...

    报表源码V2.0DotNet(C#,VB)

    此源码包括CSharp、VB.net报表代码示例。 Gscr.Report控件(广源报表控件)实现报表自由定义,报表显示、打印预览、打印、公式、排序、导出等报表常见功能,是一款较好报表控件。 ---以下是引用官方部分简介--- Gscr....

    免费Spire.XLS: 处理Excel文档in C#, VB.NET

    通过使用Free Spire.XLS for .NET,开发人员可以快速方便的查看,生成,读写以及自定义编辑Excel文件。Spire.XLS for .NET支持Excel 97-2003, Excel 2007, Excel 2010 and Excel 2013。它还支持C#, VB.NET, ASP.NET...

    [VB.NET入门经典第三版]利斯.002

     掌握了这些知识后,读者就可以进一步研究数据库编程,使用Web窗体创建用于Web的ASP.NET应用程序,并了解XML的基础知识。最后,通过Web Services,还可以把在线提供的功能无缝地集成到自己的应用程序中。  本书...

    为VB.NET解释的.NET远程处理事件

    这是“ .NET远程处理事件的解释”的VB.NET版本。

Global site tag (gtag.js) - Google Analytics