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

word|xml|二进制|生成xml|数据|转换

用vb将word文档(或其他的二进制数据)生成xml文件并互相转换1.    建立一个新的vb工程2.    引用 Microsoft XML,版本 2.0 或以上3.    在窗体form1上建立按钮 cmdCreateXMLcmdGetBinary 代码: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的地方

时间: 2024-11-03 01:20:48

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

vb 读取word文档中的数据和图片

问题描述 vb 读取word文档中的数据和图片 http://bbs.csdn.net/topics/390528303?page=1 我遇到了和该帖同样的问题: 需要将一个doc文档中 按特定字符分割后提取出内容 内容不只有字符还有图 比如: /xxxxxxxxxxx[图片1]xxxx/ /xxxxxxxxxxxxxxxx[图片2]xxxxxxxxxxxxxxxx/xxxxxxx[图片3]/ 请大家给点建议 尽量详细 解决方案 建议通过ole连接word,然后你直接用VBA函数来实现,查找指定

求助,如何通过VB读取word文档中的各级目录信息,请高手指点,送分!

问题描述 如何通过VB读取word文档中的各级目录信息,请高手指点~!送分,谢各路大侠~~ 解决方案 解决方案二:正在关注此项功能,目前唯一的想法是添加书签然后在判断,还没通过程序调试.另外这次要求用C#比较郁闷!

Word文档中对表格中数据进行计算的方法

  Word文档中对表格中数据进行计算的方法          1.在表格的最后一个单元格中单击放置插入点光标,然后在"表格工具-布局"选项卡中单击"数据"组中的"公式"按钮,如图1所示. 图1 单击"公式"按钮 2.打开"公式"对话框,在"编号格式"下拉列表中选择公式结果的显示格式,在"粘贴函数"下拉列表中选择需要使用的函数,如图2所示.此时公式将被粘贴到"

Word文档中图表目录怎么自动生成?

  Word文档中图表目录怎么自动生成? 1.加题注:打开word,给我们的图表加上相应的题注,把光标停留在适当的地方,一般是图表的下方,然后,选择上功能选项卡的引用-->插入题注,如图. 2.点击插入题注后,弹出题注对话题,我们在题注处输入我们的图表的说明或是其它一些信息,然后点击确定,如图. 3.这样,我们的图表的对应一条题注就加上了,如图.同理,我们给word所有需要生成图表目录的图表都加上题注. 4.如果我们修改或是复制过去的话,就需要选择其中的数字,点击右键,弹出菜单,点击更新域,如图

c# open xml-用C#怎么实现把word文档的doc格式转为符合open xml标准的xml格式

问题描述 用C#怎么实现把word文档的doc格式转为符合open xml标准的xml格式 情况如标题所说,急啊!!!要求用的工具是open xml sdk,有两份word doc文档,内容相同,只不过是某些字体的颜色,大小不同,现在的任务是把这两分doc 文档转为xml,然后在对比两份xml文件,生成对比报告....

求vb.net2010读取excel数据生成xml文件的实例源码

问题描述 求vb.net2010读取excel数据生成xml文件的实例源码.刚刚开始学习,需要做个小工具.读取excel表格中的数据,生成一个XML文件.求各路英雄大虾给个示例源码学习学习.谢谢了! 解决方案 解决方案二:分两部分1.读取EXCEL数据表的数据.2.处理表的非法内容3.写入XML文件.解决方案三:这种源码百度就能搜到解决方案四:引用1楼notbb的回复: 分两部分1.读取EXCEL数据表的数据.2.处理表的非法内容3.写入XML文件. 能写个源码发来学习学习吗?我是业余初学者.想

Word文档生成

非常多的时候,都需要在程序当中生成一些文档,这些文档可能是csv,word,pdf,PPT,xls等文件格式. 生成csv还是比较简单的,但是要生成word,excel就麻烦多了. 当然,Tiny框架也面临这个问题,如何才能帮助开发人员快速生成这些文档呢? 一般来说,现在用java生成Word有如下方式: POI,iText,当然还有Xml形式. 对于采用POI,iText来说,要生成复杂的Doc文件,其实并不容易.而采用Xml结构生成,去把一个文档生成xml文件,看看里面的内容,估计也会是满头

Java程序把Word文档直接转换成HTML文件

word|程序|转换 Jacob是Java和Windows下的Com桥,通过它我们可以在Java程序中调用COM组件.如果你的JDK是1.4,那你需要下载Jacob1.9的jni库才能正常运行,早期版本在JDK1.4下有些问题. package com; /*** 〈p〉Title:Word文档转html类〈/p〉* 〈p〉Description: 〈/p〉* 〈p〉Copyright:() 2002〈/p〉* @author 舵手* @version 1.0*/import com.jacob

破解Word文档密码的三种方法

  破解word文档密码方法一:文件另存法 打开受保护的文档,依次单击"文件→另存为",弹出"另存为"对话窗口,在"保存类型"中选择"WORD97-2000&6.0/95-RTF(*.doc)", 再给文档取个名字,单击"保存"按钮.关闭文档再次打开,然后再依次执行"工具→解除文档保护",这时就不会再提示输入密码了.在另存为时,也可将文件类型选择为html,然后打开html文件,