`
mmdev
  • 浏览: 13300695 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换

阅读更多

用vb将word文档(或其他的二进制数据)生成xml文件并互相转换<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1. 建立一个新的vb工程

2. 引用 Microsoft XML,版本 2.0 或以上

3. 在窗体form1上建立按钮 cmdCreateXML cmdGetBinary

代码:

Option Explicit
Dim oDoc As DOMDocument
Dim DOCINPATH As String
Dim XMLOUTPATH As String
Dim DOCOUTPATH As String

Private Sub cmdCreateXML_Click()

Dim oEle As IXMLDOMElement
Dim oRoot As IXMLDOMElement
Dim oNode As IXMLDOMNode

DOCINPATH = App.Path & "\DocInput.doc"
XMLOUTPATH = App.Path & "\XmlOuput.xml"

Call ReleaseObjects

Set oDoc = New DOMDocument
oDoc.resolveExternals = True

' Create processing instruction and document root
Set oNode = oDoc.createProcessingInstruction("xml", "version='1.0'")
Set oNode = oDoc.insertBefore(oNode, oDoc.childNodes.Item(0))

' Create document root
Set oRoot = oDoc.createElement("Root")
Set oDoc.documentElement = oRoot
oRoot.setAttribute "xmlns:dt", "urn:schemas-microsoft-com:datatypes"

' Add a few simple nodes with different datatypes
Set oNode = oDoc.createElement("Document")
oNode.Text = "Demo"
oRoot.appendChild oNode

Set oNode = oDoc.createElement("CreateDate")
oRoot.appendChild oNode
Set oEle = oNode

' Use DataType so MSXML will validate the data type
oEle.dataType = "date"

oEle.nodeTypedValue = Now

Set oNode = oDoc.createElement("bgColor")
oRoot.appendChild oNode
Set oEle = oNode

' Use DataType so MSXML will validate the data type
oEle.dataType = "bin.hex"

oEle.Text = &HFFCCCC

Set oNode = oDoc.createElement("Data")
oRoot.appendChild oNode
Set oEle = oNode

' Use DataType so MSXML will validate the data type
oEle.dataType = "bin.base64"

' Read in the data
oEle.nodeTypedValue = ReadBinData(DOCINPATH)

' Save xml file
oDoc.save XMLOUTPATH

MsgBox XMLOUTPATH & " is created for you."

End Sub

Function ReadBinData(ByVal strFileName As String) As Variant
Dim lLen As Long
Dim iFile As Integer
Dim arrBytes() As Byte
Dim lCount As Long
Dim strOut As String

'Read from disk
iFile = FreeFile()
Open strFileName For Binary Access Read As iFile
lLen = FileLen(strFileName)
ReDim arrBytes(lLen - 1)
Get iFile, , arrBytes
Close iFile

ReadBinData = arrBytes
End Function

Private Sub WriteBinData(ByVal strFileName As String)
Dim iFile As Integer
Dim arrBuffer() As Byte
Dim oNode As IXMLDOMNode

If Not (oDoc Is Nothing) Then

' Get the data
Set oNode = oDoc.documentElement.selectSingleNode("/Root/Data")

' Make sure you use a byte array instead of variant
arrBuffer = oNode.nodeTypedValue

' Write to disk

iFile = FreeFile()
Open strFileName For Binary Access Write As iFile
Put iFile, , arrBuffer
Close iFile

End If

End Sub

Private Sub cmdGetBinary_Click()

DOCOUTPATH = App.Path & "\DocOutput.doc"

Set oDoc = New DOMDocument

If oDoc.Load(XMLOUTPATH) = True Then
' Save the Doc as another file
WriteBinData DOCOUTPATH

MsgBox DOCOUTPATH & " is created for you."
Else
MsgBox oDoc.parseError.reason
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
ReleaseObjects
End Sub

Private Sub ReleaseObjects()
Set oDoc = Nothing
End Sub

4. 建立word文档DocInput.doc.

5. 保存文档在工程目录下

6. 运行程序点击cmdCreateXML 按钮.一个 XML 文件XmlOuput.xml 就建立了.
点击 cmdGetBinary 按钮就可以生成word文档 DocOutput.doc.

按照上面的方法,同样可以将任意的二进制数据存为xml,然后再重新生成二进制数据

可以用于web传输等等可以使用xmlhttp的地方

分享到:
评论

相关推荐

    VB读取长二进制实例(集成于EXCEL文件中)

    在本实例中,我们探讨的是如何使用VBA在Excel中读取长二进制数据,这通常涉及到处理大容量的数据,如图片、音频文件或大型文本文件,这些数据可能不能直接以文本格式存储。以下将详细阐述这个过程及其相关知识点。 ...

    VB.NET 字符串与二进制间的转换

    在VB.NET编程中,处理数据时经常会遇到将字符串与二进制数据进行转换的情况。这是因为字符串是人类可读的数据表示形式,而二进制数据则更适用于存储和传输。了解如何在两者之间进行转换是至关重要的,特别是当你需要...

    VB6 读取二进制文件并显示.txt

    这段代码演示了如何在 VB6 环境下读取一个二进制文件,并将其内容转换为十六进制字符串的形式输出。通过这种方式,可以方便地查看或分析文件的内容。此外,代码还包含了基本的错误处理逻辑,以确保程序能够稳定运行...

    把数据库二进制数据形成文件

    "把数据库二进制数据形成文件"的标题暗示我们要讨论如何将存储在数据库中的二进制数据转换成文件格式,以便于操作和管理。这里的源码可能是一种实现这一功能的程序代码。 二进制数据在数据库中通常以BLOB(Binary ...

    VB.NET 进制转换 2进制 8进制 10进制 16进制 实现互转

    例如,将十进制数转换为二进制、八进制或十六进制,可以使用以下代码: ```vb.net Dim number As Integer = 123 Dim binary As String = number.ToString("b") ' 二进制 Dim octal As String = number.ToString...

    VB 将二进制图片文件转换为Base64字符串文本

    在IT领域,Base64是一种编码机制,用于将任意二进制数据转化为ASCII字符串,以便在电子邮件、HTML或XML等不支持二进制传输的环境中传递。VB(Visual Basic)是一种广泛使用的编程语言,尤其在处理Windows应用程序时...

    VB.net 二进制文件的读写源代码

    本文将深入探讨VB.NET中如何进行二进制文件的读写,这是一项核心的IO操作技能。 二进制文件通常用于存储非文本数据,如图像、音频、自定义数据结构等。与文本文件不同,它们不使用字符编码,而是直接存储原始字节流...

    VB中16进制转化为2进制数据小程序.rar

    在VB(Visual Basic)编程环境中,常常需要进行不同进制之间的转换,比如将16进制数字转换为2进制数据。这个“VB中16进制转化为2进制数据小程序”就是一个实用工具,用于帮助程序员或计算机用户完成这类转换。下面...

    VB读取jpeg文件二进制写入

    这个“VB读取jpeg文件二进制写入”的主题涵盖了如何使用VB来读取JPEG文件的二进制数据,然后将这些数据保存为新的文件,并最终显示出来。这个过程对于理解二进制数据的管理和图像处理技术具有重要意义。 首先,我们...

    VB将二进制图片文件转换为Base64字符串文本

    在编程领域,Base64是一种常见的数据编码方式,它能够将任何二进制数据转换成ASCII字符串形式,便于在网络上传输或存储。在VB(Visual Basic)中,处理这种转换非常实用,尤其是在处理图片文件时。例如,如果你有一...

    VB对二进制文件的读写

    接下来,我们将深入探讨如何使用VB进行二进制文件的读写操作,并结合文件的加密解密来阐述相关知识点。 首先,我们要了解VB中的基本文件操作函数。`Open`函数用于打开一个文件,`Close`函数用于关闭已打开的文件,`...

    vb读取文件内容并以二进制显示

    vb读取文件内容并以二进制显示,适合初学者学习。

    HEX TO BIN 十六进制转换为二进制 vb6.0实现

    这在与硬件设备交互或解析特定格式的文件时非常有用,因为很多底层通信协议都倾向于使用十六进制表示数据,而计算机内部则是以二进制形式存储和处理信息。 描述中提到,当上位机与下位机进行数据通讯时,通常会采用...

    VB.NET实现调用WORD模板写入数据并生成新的WORD文档

    在VB.NET中,调用Word模板来写入数据并生成新的Word文档是一项常见的任务,尤其在自动化报告生成、批量文档处理或数据填充等场景中。这个过程通常涉及到Microsoft Office Interop库,它允许VB.NET代码与Word应用程序...

    VB 建立二进制文件的实例

    本实例将深入探讨如何使用VB来创建、读取和操作二进制文件。 首先,我们需要了解二进制文件的基本概念。二进制文件是计算机存储数据的一种形式,其中包含原始字节流,这些字节可以代表任何类型的数据。与文本文件...

    vb十转二进制

    在VB(Visual Basic)编程语言中,将十进制数转换为二进制数是一项基本操作,这在处理计算机数据时非常常见。因为计算机内部是以二进制形式存储和处理信息的,所以理解和掌握这种转换对于任何编程人员来说都是至关...

    VB--十进制,八进制,十六进制,二进制相互转换大全

    标题和描述均提到了在VB(Visual Basic)中进行不同进制数字之间的转换,包括十进制、八进制、十六进制以及二进制之间的转换。这些转换在编程领域非常常见,尤其是在处理数据存储、网络通信、加密解密算法等场景下。...

    VB 十进制与二进制的转换源程序

    本文将深入探讨VB中十进制与二进制之间的转换,以及如何利用源代码实现这一过程。 首先,我们要理解十进制和二进制的基本概念。十进制是我们日常生活中常用的数字系统,基于10个基数(0到9)。而二进制则是计算机...

    vb2005案例-二进制文件的读写操作

    在VB2005中,二进制文件的读写操作是编程中常见的任务,尤其在处理非文本数据,如图像、音频或自定义数据结构时。本案例将深入探讨如何利用VB2005进行二进制文件的读取与写入,以帮助开发者更好地理解和应用这些技术...

    二进制与十进制转换VB函数

    ### 二进制与十进制转换VB函数 在计算机科学领域中,数据表示和转换是非常重要的基础概念之一。在编程语言中,我们经常需要处理不同的数字系统之间的转换,例如二进制到十进制或者反过来。Visual Basic (VB) 是一种...

Global site tag (gtag.js) - Google Analytics