Cara membuat dokumen XML dengan Data biner Visual Basic

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 254388 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Skema XML mendefinisikan kemampuan untuk menciptakan node XML sebagai bin.base64 atau bin.hex, yang merupakan dua bentuk biner dikodekan.

Artikel ini menunjukkan contoh tentang bagaimana untuk membuat dokumen XML dengan node jenis bin.hex dan membaca konten biner dari node ini.

INFORMASI LEBIH LANJUT

CATATAN: Sebagai contoh ini menunjukkan, Anda tidak perlu melakukan konversi dari format binari ke hex format secara terpisah. Jika Anda menetapkan konten biner ke node bin.hex melalui nodeTypedValue properti, MSXML parser secara otomatis mengubah untuk Anda. Jika Anda memang ingin memberikan nilai HEX, Anda bisa menetapkan ke node dengan menggunakan teks properti.

Microsoft menyediakan pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat, termasuk, namun tidak terbatas pada, jaminan tersirat mengenai keadaan yang dapat diperjualbelikan dan/atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda sudah familiar dengan bahasa pemrograman yang ditunjukkan dan alat-alat yang digunakan untuk membuat dan memperbaiki prosedur. Profesional dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, tetapi mereka tidak akan mengubah contoh tersebut untuk menyediakan fungsionalitas tambahan atau membuat prosedur untuk memenuhi kebutuhan spesifik Anda.
Jika Anda memiliki terbatas pengalaman pemrograman, Anda mungkin ingin menghubungi Microsoft Certified Partner atau Microsoft Advisory Services. Untuk informasi lebih lanjut, kunjungi situs Web Microsoft ini:

Microsoft Certified Partner- https://Partner.Microsoft.com/global/30000104

Microsoft Advisory Services- http://support.Microsoft.com/GP/advisoryservice

Untuk informasi lebih lanjut tentang opsi dukungan yang tersedia dan tentang cara menghubungi Microsoft, kunjungi Website Microsoft berikut:http://support.Microsoft.com/default.aspx?scid=Fh;EN-US;CNTACTMS
Langkah-langkah berikut menunjukkan kepada Anda bagaimana untuk membuat dokumen XML dengan biner konten, dan kemudian membaca kembali konten biner node yang Anda buat dari dokumen XML ini:
  1. Membuat proyek EXE standar baru Visual Basic dan menyimpannya.
  2. Pilih Microsoft XML, versi 3.0 atau lebih tinggi, dalam referensi proyek Anda.
  3. Buat tombol disebut cmdCreateXML dan satu lagi yang disebut cmdGetBinary pada form1.
  4. Tombol ini memberikan keterangan deskriptif.
  5. Paste kode berikut dalam modul kode di belakang form1.
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' How to create XML with binary data
    '
    ' General program flows:
    '
    ' Build  builds a small XML file from a MS Doc file
    ' Write  saves XML tree to a file
    ' Write the MS Doc file as another file
    '
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Use the version dependent progid DOMDocument60 to create an MSXML 6.0 DOMDocument object if your are referencing MSXML 4.0 in your project.
    
    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
    					
  6. Membuat dokumen Microsoft Word dengan beberapa konten yang sewenang-wenang dan nama DocInput.doc.
  7. Simpan file kata ini dalam folder yang sama sebagai proyek Anda.
  8. Menjalankan proyek dan klik cmdCreateXML tombol. Sebuah file XML yang bernama XmlOuput.xml dibuat.
  9. Klik cmdGetBinary tombol dan berkas Word yang disebut DocOutput.doc dibuat.

REFERENSI

Untuk informasi lebih lanjut tentang mengembangkan solusi berbasis Web untuk Microsoft Internet Explorer, kunjungi Website Microsoft berikut:
http://MSDN.Microsoft.com/IE/

http://support.microsoft.com/iep
XML Data jenis referensi:.aspx http://MSDN.Microsoft.com/en-us/library/ms256049 (VS.80)

Properti

ID Artikel: 254388 - Kajian Terakhir: 21 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic 6.0 Professional Edition
Kata kunci: 
kbhowto kbsbnworkshop kbmt KB254388 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:254388

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com