Листинг 4. Формирование Log-файла со свойствами документов

Приложение к статье "Использование XML DOM в VB и MS Office/VBA"

Public Sub DocPropertyToLogXML(ThisDoc As Object)
    ' Запись информации о закрываемом файле в Log-файл
    Dim xmlDoc As DOMDocument
    Dim xmlLog As DOMDocument
    Dim DocItem As IXMLDOMElement
    Dim logFile$
    logFile = "d:\logfile.xml"    ' имя Log-файла
    '
    ' создаем XMLDOC-объект для текщего документа
    Set xmlDoc = DocPropertiesToXML(ThisDoc)
    
    ' подключаем его к Log-файлу
    ' открываем Log-файл
    Set xmlLog = New DOMDocument
    xmlLog.Load logFile$
    If xmlLog.parseError.errorCode <> 0 Then
       ' файл не был создан, формируем новый
       xmlLog.loadXML "<DocLog/>"
    End If
    Set DocItem = xmlLog.selectSingleNode("//DocLog")
    If xmlLog.selectNodes("//DocProperties").Length > 0 Then
       ' уже есть описания свойств,
       ' вставляем новое описание сверху
       DocItem.InsertBefore _
          xmlDoc.documentElement.cloneNode(True), _
          DocItem.childNodes(0)
    Else   ' вставляем первый элемент
       DocItem.appendChild xmlDoc.documentElement.cloneNode(True)
    End If
    xmlLog.Save logFile ' сохраняем
End Sub

В начало статьи