powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Microsoft XML 3.0
5 сообщений из 5, страница 1 из 1
Microsoft XML 3.0
    #33602487
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья! Поделитесь пожалуйста кодом на VBA или VB6 по чтению и изменению XML файла
Например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Open_XML()
Dim objDoc As MSXML2.DOMDocument
Dim objNode As MSXML2.IXMLDOMNode
Dim objRoot As MSXML2.IXMLDOMElement
Dim objCar As MSXML2.IXMLDOMElement
Set objDoc = New DOMDocument

   ' а как дальше

End Sub
...
Рейтинг: 0 / 0
Microsoft XML 3.0
    #33602574
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я недавно сам тут ответ на этот вопрос нашел :)
...
Рейтинг: 0 / 0
Microsoft XML 3.0
    #33602812
Посмотри здесь , а также поиск по форуму.
...
Рейтинг: 0 / 0
Microsoft XML 3.0
    #33604123
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот моя добыча валюты из инета A97
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
Public Function GetCourse(CURRENCYID As Long, onDate As Date) As Double
  On Error GoTo Err_GetCourse
    Dim xmlDoc As MSXML2.DOMDocument
    Dim xmlNode As MSXML2.IXMLDOMNode
    
    Dim i As Integer, j As Integer
    Dim strSQL As String, strVal As String, strCourse As String
    
    DoCmd.Hourglass True
    If onDate > Date +  1  Then
        DoCmd.Hourglass False
             GetCourse = - 3  'Слишком рано
        Exit Function
    End If
    'Âûáîð âàëþòû
    If CURRENCYID = GetUSDID Then     
        strVal = "USD"
    ElseIf CURRENCYID = GetEURID Then 
        strVal = "EUR"
    ElseIf CURRENCYID = GetUEID Then  
        DoCmd.Hourglass False
        GetCourse =  35     'принятый курс УЕ 
        Exit Function
    ElseIf CURRENCYID = GetRUSID Then 
        DoCmd.Hourglass False
        GetCourse =  1  
        Exit Function
    Else
        DoCmd.Hourglass False
        GetCourse = - 2                 'Неверный код валюты 
        Exit Function
    End If
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    xmlDoc.async = False     
    If Not xmlDoc.Load("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & Format(onDate, "dd.mm.yyyy")) Then
        GetCourse = - 4 
        MsgBox ("Не грузится!")
        DoCmd.Hourglass False
        GoTo Exit_GetCourse
    End If
    Set xmlNode = xmlDoc.selectNodes("ValCurs").Item( 0 ).cloneNode(True)
    For i =  0  To xmlNode.childNodes.Length -  1 
        If xmlNode.childNodes.Item(i).childNodes.Item( 1 ).Text = strVal Then
            strCourse = xmlNode.childNodes.Item(i).childNodes.Item( 4 ).Text
            'Debug.Print strCourse
            For j =  1  To Len(strCourse) 'замена "," на "."
                If mid(strCourse, j,  1 ) = "," Then
                    Mid(strCourse, j,  1 ) = "."
                End If
            Next j
            Exit For
        End If
    Next i
    GetCourse = CDbl(strCourse)
Exit_GetCourse:
    Set xmlDoc = Nothing
    Set xmlNode = Nothing
    DoCmd.Hourglass False
    Exit Function
Err_GetCourse:
    Set xmlDoc = Nothing
    Set xmlNode = Nothing
    DoCmd.Hourglass False
    GetCourse = - 1 
End Function

Обход XML планировалось сделать аналог ExportXML, т.к. его нет в А97 но забросилось
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Public Function XMLobhod(obj As Object, lev As Long) As String
    Dim xmlNode As MSXML2.IXMLDOMNodeList
    Dim i As Long, j As Integer
    Dim level As Long
    Set xmlNode = obj
    Dim str As String
    level = lev
    'If xmlNode. h length = 0 Then
        'Debug.Print xmlNode.Item(0).nodeName & " Level - " & level & " Len - " & xmlNode.length
   '     Exit Function
   ' End If
    
    For i =  0  To xmlNode.length -  1 
        str = ""
        If xmlNode(i).childNodes.length >  0  Then
            For j =  1  To level
                str = str + "    "
            Next j
            
            str = str & xmlNode.Item(i).nodeName & " Level - " & level & _
                  " Len - " & xmlNode.length
                  
            If xmlNode(i).childNodes.length =  1  Then
                str = str & " Type - " & xmlNode(i).childNodes( 0 ).nodeTypeString
            End If
            Debug.Print str
            Call XMLobhod(xmlNode.Item(i).childNodes, level +  1 )
        End If
    Next i
    
    'Debug.Print xmlNode.Item(0).nodeName
    
    Set xmlNode = Nothing
End Function
...
Рейтинг: 0 / 0
Microsoft XML 3.0
    #33604131
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сам начал работать с XML 2 недели назад а закончил через 1,5 недели назад как сделал экспорт валют так и забил :), если что то не так или можно сделать лучше то с удовольствием прислушаюсь к советам
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Microsoft XML 3.0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]