powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разбор XML строки
5 сообщений из 5, страница 1 из 1
Разбор XML строки
    #38386238
alm2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ниже приведен фрагмент кода для разбора XML строки и сама XML строка.

Как правильно указать xml_path ?

‘ в примерах видел такой код: - но он не работает:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
'?????????? xml_path = "/values/response/response/*"  
    
    Set xmlNodeList = xmlParser.documentElement.selectNodes(xml_path)
    For Each xmlNode In xmlNodeList
       Debug.Print xmlNode.nodeName, xmlNode.Text
        
        If xmlNode.nodeName = "NAME" Then
            a = 1
        
        End If
    Next



--------------------------------

XML Строка:


Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<PERSONS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PERSON>
<ENP>2234530834000319</ENP>
<NDOC>016846</NDOC>
<SDOC>11 09</SDOC>
<DOCTYPE>14</DOCTYPE>
<SURNAME>ИВАНОВ</SURNAME>
<NAME>ВЛАДИМИР</NAME>
<SECNAME>ИВАНОВИЧ</SECNAME>
<BIRTHDAY>1977-12-11</BIRTHDAY>
<SEX>1</SEX>
<NPOLIS>122222</NPOLIS>
<SPOLIS>22</SPOLIS>
<VPOLIS>1</VPOLIS>
<INSURER>22018</INSURER>
<LPUBASE>5111</LPUBASE>
<LPUBASE_U>0</LPUBASE_U>
<DN>2011-02-19</DN>
<DK></DK>
<TER>11</TER>
<ORGN1>301</ORGN1>
<ORGN2>318</ORGN2>
<ORGN3>0</ORGN3>
<RAZDEL>1</RAZDEL>
<STREET>175</STREET>
<HOUSE>15</HOUSE>
<HOUSELITER></HOUSELITER>
<CORPUS>0</CORPUS>
<FLAT>22</FLAT>
<FLATLITER></FLATLITER>
</PERSON>
<PERSON>
<ENP>1243430834000319</ENP>
<NDOC>016546</NDOC>
<SDOC>12 09</SDOC>
<DOCTYPE>11</DOCTYPE>
<SURNAME>ИВАНОВ</SURNAME>
<NAME>ПЕТР</NAME>
<SECNAME>ИВАНОВИЧ</SECNAME>
<BIRTHDAY>1977-11-22</BIRTHDAY>
<SEX>1</SEX>
<NPOLIS>13222</NPOLIS>
<SPOLIS>24</SPOLIS>
<VPOLIS>2</VPOLIS>
<INSURER>21018</INSURER>
<LPUBASE>5121</LPUBASE>
<LPUBASE_U>0</LPUBASE_U>
<DN>2011-02-19</DN>
<DK></DK>
<TER>11</TER>
<ORGN1>331</ORGN1>
<ORGN2>218</ORGN2>
<ORGN3>0</ORGN3>
<RAZDEL>1</RAZDEL>
<STREET>15</STREET>
<HOUSE>1</HOUSE>
<HOUSELITER></HOUSELITER>
<CORPUS>0</CORPUS>
<FLAT>21</FLAT>
<FLATLITER></FLATLITER>
</PERSON>
</PERSONS>



-------------------------
Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Разбор XML строки
    #38386293
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alm2,

Код не работает - это слишком абстрактно. Это весь код или фрагмент? Вы может забыли объявить переменные? Или укаазть ссылку на MSXML? и т.д. и т.п.
Вот такой код у меня работает:
Код: vbnet
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.
Option Explicit

Sub ParseXML()

Dim XmlDoc As MSXML2.DOMDocument60
Dim XmlLst As MSXML2.IXMLDOMNodeList
Dim XmlNode As MSXML2.IXMLDOMNode
Dim a As Integer

Set XmlDoc = New MSXML2.DOMDocument60

XmlDoc.Load ("C:\test\text.xml")

Set XmlLst = XmlDoc.SelectNodes("/PERSONS/PERSON/*")

For Each XmlNode In XmlLst
    Debug.Print XmlNode.nodeName, XmlNode.Text
    
    If XmlNode.nodeName = "NAME" Then
        a = 1
        Debug.Print a
    End If
Next

End Sub



Вот здесь нужно и можно почитать как правильно указывать путь.
...
Рейтинг: 0 / 0
Разбор XML строки
    #38386295
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alm2,

Да, вы пишите, что фрагмент, но фрагмент чего именно, только той части, что должна парсить xml или у вас там много другого кода.
...
Рейтинг: 0 / 0
Разбор XML строки
    #38386359
alm2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все получилось, спасибо

Есть ли способ сформировать recordset ?
Или толбко в цикле добавлять в пустой по полям ?
...
Рейтинг: 0 / 0
Разбор XML строки
    #38386414
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alm2Все получилось, спасибо

Есть ли способ сформировать recordset ?
Или толбко в цикле добавлять в пустой по полям ?

http://support.microsoft.com/kb/263247
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разбор XML строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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