<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
用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.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换
vb读取文件内容并以二进制显示,适合初学者学习。
在IFIX中VB十进制八进制十六进制二进制转换代码
VB 将二进制图片文件转换为Base64字符串文本
源代码基于VB.net对二进制文件进行读写操作。
VB--十进制,八进制,十六进制,二进制相互转换大全
VB中16进制转化为2进制数据小程序rar,VB中16进制转化为2进制数据小程序
提取VB源码中二进制文件中的所有图片资源ReadFrxRes,程序将最先分析一些二进制文件,诸如frm/frx,ctl/ctx等文件内的图像文件存储方式,然后把图像文件的Byte数组转换成StdPicture类型,再用PictureBox控件直接显示...
使用方法:创建具有一些任意内容的 Word 文档并将其命名 DocInput.doc。 将 Word 文件保存在您的项目所在的文件夹中。 运行该项目,然后单击 cmdCreateXML 按钮。 创建名为 XmlOuput.xml XML 文件。 单击 ...
VB源程序 十进制与二进制的转换
VB读取长二进制实例(集成于EXCEL文件中),打开EXCEL即可运行窗体,附带ACCESS数据库,读取后分别放到了C:\temp1.rar ,temp2.rar ...中
VB 建立二进制文件的实例 VB 建立二进制文件的实例
VB--十进制-八进制-十六进制-二进制相互转换大全.doc
vb2005案例-二进制文件的读写操作vb2005案例-二进制文件的读写操作
二进制与十进制转换VB函数 '返回二进制数对应的十进制数值
本源码演示vb6.0在十进制、二进制、八进制、十六进制等多种进制间的转换,同时还可进行十进制数分解,使用时,只需在右侧任意一个方框中输入需要转换的数字,点击“确定”按钮即可实现转换,转换记录会显示在左侧的...
VB将二进制图片文件转换为Base64字符串文本,可直接将字符串加密,也可直接读取数据库或图片文件加密为Base64字符串!
使用打开并保存二进制文件来复制文件的源代码。特别适合于嵌入到将文件分割或通过网络发送。
VB读取jpeg二进制数据,将其以二进制流数据进行保存。之后再将保存的文件进行显示。对于学习二进制操作非常有借鉴。
用vb直接把十进制的数字转换成二进制。这是本人第一个上传的文件,请大家赏个脸下载,谢谢!