分享
 
 
 

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

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

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的地方

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有