Re: Распарсить xml в vba-макросе
От: ZAMUNDA Земля для жалоб и предложений
Дата: 01.09.10 18:34
Оценка:
Здравствуйте, Mihas, Вы писали:


M>Нужно написать макрос к экселевской таблице, чтоб открывал xml и раскладывал содержимое по таблице.

M>Подскажите, плиз, где почитать по теме?
Microsoft Core XML Services (MSXML) с SDK скачиваешь и читаешь ихний help.

M>Пока не понятно: можно ли затянуть xml в какой-нибудь объект навроде XDocument в C#? Или, может быть, можно десериализовать xml в объект класса?

можно, и в оч. похожий на .Net'овский
    Dim clsXDoc As Object ' Dim clsXDoc As MSXML2.DOMDocument60
    
    Set clsXDoc = CreateObject("MSXML2.DOMDocument.6.0") ' Set clsXDoc = new MSXML2.DOMDocument60
    
    If clsXDoc.Load("...\Notepad++\config.xml") Then
        Dim clsXNode As Object ' Dim clsXNode As MSXML2.IXMLDOMNode
        
        Set clsXNode = clsXDoc.selectSingleNode("//GUIConfig[@name='ToolBar']")
        
        If Not clsXNode Is Nothing Then
            MsgBox clsXNode.nodeName & "=" & clsXNode.Text
        End If
    Else
        MsgBox "Err!"
    End If

Чтоб вместо CreateObject использовать то, что закоментировано, надо лезть в tools->references и там подключать "Microsoft XML, 6.0". По умолчанию в системе уже есть "Microsoft XML, x.x", но они от версии к версии разные немного, и ранние версии с багами и тормознутее, и по умолчанию help'а нет, но ничё ставить ненадо — так что сам решай.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.