zoukankan      html  css  js  c++  java
  • VBA 生成XML(转)

    需要引用连个库,Microsoft ADO Ext. 6.0 for DDL and Security, Miscrosoft  ActiveX Data Objects 2.7 Library .

    Sub 按钮2_Click()
        Dim xmlFile As String
        xmlFile = "D:	estooks.xml"
        CreateXml xmlFile
    End Sub
    
    Function CreateXml(xmlFile As String)
        Dim xDoc As Object
        Dim rootNode As Object
        Dim header As Object
        Dim newNode As Object
        Dim tNode As Object
    
        Set xDoc = CreateObject("MSXML2.DOMDocument")
        Set rootNode = xDoc.createElement("BookList")
        Set xDoc.DocumentElement = rootNode
        'xDoc.Load xmlFile
        Set header = xDoc.createProcessingInstruction("xml", "version='1.0' encoding='Unicode'")
        xDoc.InsertBefore header, xDoc.ChildNodes(0)
    
        Set newNode = xDoc.createElement("book")
        Set tNode = xDoc.DocumentElement.appendChild(newNode)
        tNode.setAttribute "type", "program"
    
        Set newNode = xDoc.createElement("name")
        Set tNode = xDoc.DocumentElement.ChildNodes.Item(0).appendChild(newNode)
        tNode.appendChild (xDoc.createTextNode("Thinking in Java"))
    
        Set newNode = xDoc.createElement("author")
        Set tNode = xDoc.DocumentElement.ChildNodes.Item(0).appendChild(newNode)
        tNode.appendChild (xDoc.createTextNode("Bruce Eckel"))
    
        Set newNode = xDoc.createElement("book")
        Set tNode = xDoc.DocumentElement.appendChild(newNode)
        tNode.setAttribute "type", "literature"
    
        Set newNode = xDoc.createElement("name")
        Set tNode = xDoc.DocumentElement.ChildNodes.Item(1).appendChild(newNode)
        tNode.appendChild (xDoc.createTextNode("边城"))
    
        Set newNode = xDoc.createElement("author")
        Set tNode = xDoc.DocumentElement.ChildNodes.Item(1).appendChild(newNode)
        tNode.appendChild (xDoc.createTextNode("沈从文"))
    
        Set newNode = Nothing
        Set tNode = Nothing
    
        Dim xmlStr As String
        xmlStr = PrettyPrintXml(xDoc)
        WriteUtf8WithoutBom xmlFile, xmlStr
    
        Set rootNode = Nothing
        Set xDoc = Nothing
    
        MsgBox xmlFile & "输出完成"
    
    End Function
    
    '格式化xml,带换行缩进
    Function PrettyPrintXml(xmldoc) As String
        Dim reader As Object
        Dim writer As Object
        Set reader = CreateObject("Msxml2.SAXXMLReader.6.0")
        Set writer = CreateObject("Msxml2.MXXMLWriter.6.0")
        writer.indent = True
        writer.omitXMLDeclaration = True
        reader.contentHandler = writer
        reader.Parse (xmldoc)
        PrettyPrintXml = writer.Output
    End Function
    
    ' utf8无BOM编码格式
    Function WriteUtf8WithoutBom(filename As String, content As String)
        Dim stream As New ADODB.stream
        stream.Open
        stream.Type = adTypeText
        stream.Charset = "utf-8"
        stream.WriteText "<?xml version=" & Chr(34) & "1.0" & Chr(34) & _
                         " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>" & vbCrLf
        stream.WriteText content
    
        '移除前三个字节(0xEF,0xBB,0xBF)
        stream.Position = 3
    
        Dim newStream As New ADODB.stream
        newStream.Type = adTypeBinary
        newStream.Mode = adModeReadWrite
        newStream.Open
    
        stream.CopyTo newStream
        stream.Flush
        stream.Close
    
        newStream.SaveToFile filename, adSaveCreateOverWrite
        newStream.Flush
        newStream.Close    
    End Function
    --------------------- 
    作者:luwhite 
    来源:CSDN 
    原文:https://blog.csdn.net/luwhite/article/details/52343305 
    版权声明:本文为博主原创文章,转载请附上博文链接!
    

      

  • 相关阅读:
    HDU 1069 Monkey and Banana
    HDU 1029 Ignatius and the Princess IV
    HDU 1024 Max Sum Plus Plus
    Gym100923H Por Costel and the Match
    Codeforces 682C Alyona and the Tree
    Codeforces 449B Jzzhu and Cities
    Codeforces (ccpc-wannafly camp day2) L. Por Costel and the Semipalindromes
    Codeforces 598D (ccpc-wannafly camp day1) Igor In the Museum
    Codeforces 1167c(ccpc wannafly camp day1) News Distribution 并查集模板
    快乐数问题
  • 原文地址:https://www.cnblogs.com/luoye00/p/10694698.html
Copyright © 2011-2022 走看看