Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Разбор XML строки / 5 сообщений из 5, страница 1 из 1
04.09.2013, 10:52
    #38386238
alm2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор XML строки
Ниже приведен фрагмент кода для разбора 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
04.09.2013, 11:19
    #38386293
lbppb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор XML строки
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
04.09.2013, 11:21
    #38386295
lbppb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбор XML строки
alm2,

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

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

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

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


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