新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> XML与各种文件格式的相互转换及相关工具。 word to xml, xml to word, html to xml, xml to pdf,
    csv to xml, rtf to xml, text to xml, xml to text, xls to xml, xml to xls
    FOP
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 WORD to XML, HTML to XML 』 → [转帖]用vb将word文档(或其他的二进制数据)生成xml文件并互相转换 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 19212 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [转帖]用vb将word文档(或其他的二进制数据)生成xml文件并互相转换 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 WORD to XML, HTML to XML 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 [转帖]用vb将word文档(或其他的二进制数据)生成xml文件并互相转换

    http://blog.csdn.net/coolstar/archive/2001/11/29/5795.aspx

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


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/2/24 0:02:00
     
     AlongleeNet 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:34
      积分:194
      门派:XML.ORG.CN
      注册:2004/10/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给AlongleeNet发送一个短消息 把AlongleeNet加入好友 查看AlongleeNet的个人资料 搜索AlongleeNet在『 WORD to XML, HTML to XML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看AlongleeNet的博客2
    发贴心情 
    这么好的文章,我收藏

    ----------------------------------------------
    学习xml .net中

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/3/27 7:48:00
     
     ksai 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:32
      积分:217
      门派:XML.ORG.CN
      注册:2005/3/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ksai发送一个短消息 把ksai加入好友 查看ksai的个人资料 搜索ksai在『 WORD to XML, HTML to XML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看ksai的博客3
    发贴心情 
    看不懂,我是学C#、C++的,VB晕呐!
         搂主,有没有什么方法将XML转为Word的
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/3 8:59:00
     
     poalex 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:6
      积分:74
      门派:XML.ORG.CN
      注册:2005/1/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给poalex发送一个短消息 把poalex加入好友 查看poalex的个人资料 搜索poalex在『 WORD to XML, HTML to XML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看poalex的博客4
    发贴心情 
    这个好像是将word文件用 base64编码再保存,不是真正的变为xml
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/5 21:39:00
     
     bound0 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:58
      门派:XML.ORG.CN
      注册:2005/1/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给bound0发送一个短消息 把bound0加入好友 查看bound0的个人资料 搜索bound0在『 WORD to XML, HTML to XML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看bound0的博客5
    发贴心情 
    以下是引用poalex在2005-4-5 21:39:31的发言:
    这个好像是将word文件用 base64编码再保存,不是真正的变为xml

    是啊,这样的话其实和xml没什么关系;不能体现内容和结构,还要xml干什么?

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/8 20:13:00
     
     haixing212 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:55
      门派:XML.ORG.CN
      注册:2005/4/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给haixing212发送一个短消息 把haixing212加入好友 查看haixing212的个人资料 搜索haixing212在『 WORD to XML, HTML to XML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看haixing212的博客6
    发贴心情 
    Dim oDoc As DOMDocument——    Compile error:User-defined type not defined
    VB学的不好,怎么才能调出来呢,是因为“2.    引用 Microsoft XML,版本 2.0 或以上”??
    yuuyvv1981@163.com QQ:344273090 求助阿!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/20 17:46:00
     
     cxh0926 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:20
      积分:136
      门派:XML.ORG.CN
      注册:2005/3/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给cxh0926发送一个短消息 把cxh0926加入好友 查看cxh0926的个人资料 搜索cxh0926在『 WORD to XML, HTML to XML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看cxh0926的博客7
    发贴心情 
    能不能实现功能呢?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/5/5 22:22:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 WORD to XML, HTML to XML 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 8:59:16

    本主题贴数7,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    328.125ms