Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как через VBA проверить есть ли узел в файле xml / 3 сообщений из 3, страница 1 из 1
26.10.2015, 10:17
    #39086459
nickstarnew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через VBA проверить есть ли узел в файле xml
Подскажите, как средствами VBA проверить наличие/отсутствие узла в загружаемом файле xml?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0"?>
<man>
	<pers1>
		<f>QQQ</f>
		<i>QQQ</i>
		<o>QQQ</o>
		<dr>QQQ</dr><dr>QQQ</dr>
       </pers1>
	<pers2>
		<f>QQQ</f>
		<i>QQQ</i>
		<o>QQQ</o>
       </pers2>
</man>


т.е. в узла в <pers1> нет дочернего узла <dr>, который есть у узла <pers2>, как программно это проверить? Пробую работать через MSXML2.DOMDocument60.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Dim xmlDoc As MSXML2.DOMDocument60
    Dim xmlRoot As MSXML2.IXMLDOMNode
    
    Set xmlDoc = New MSXML2.DOMDocument60
    xmlDoc.async = False
    xmlDoc.validateOnParse = False
    
    If xmlDoc.Load("test.xml") = True Then
        if xmlDoc.???("man/pers1/dr") = True then   '!!! Вот сюда, какую функцию применить?
            Set xmlRoot = xmlDoc.selectSingleNode("man/pers1/dr")
        end if
    end if
...
Рейтинг: 0 / 0
26.10.2015, 22:39
    #39087435
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через VBA проверить есть ли узел в файле xml
nickstarnew,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Sub existsnode()
Dim xDoc As MSXML2.DOMDocument
Dim xmlRoot As MSXML2.IXMLDOMNode
Set xDoc = New MSXML2.DOMDocument
xDoc.validateOnParse = False
xDoc.Load ("test.xml")
Set xmlRoot = xDoc.selectSingleNode("man/pers1/dr")
If xmlRoot Is Nothing Then MsgBox "узел не существует" Else MsgBox "узел существует"
End Sub
...
Рейтинг: 0 / 0
02.11.2015, 16:18
    #39092945
nickstarnew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как через VBA проверить есть ли узел в файле xml
guest_rusimportnickstarnew,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Sub existsnode()
Dim xDoc As MSXML2.DOMDocument
Dim xmlRoot As MSXML2.IXMLDOMNode
Set xDoc = New MSXML2.DOMDocument
xDoc.validateOnParse = False
xDoc.Load ("test.xml")
Set xmlRoot = xDoc.selectSingleNode("man/pers1/dr")
If xmlRoot Is Nothing Then MsgBox "узел не существует" Else MsgBox "узел существует"
End Sub



Спасибо, все заработало с пол. пинка ;-)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как через VBA проверить есть ли узел в файле xml / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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