ошибка времени выполнения '-2147467259 (80004005)', ожидаемая ']' найдена 'NAME' при выполнении запроса xpath в Excel vba - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь написать макрос для обработки данных из XML-файла в VBA.Все мои запросы работают нормально, кроме одного, в котором используется несколько условий.

    <Meetings>
        <Meeting>
           <Object>Budget</Object>
           <startHour>15</startHour>
           <endHour>19</endHour>
        </Meeting>
    </Meetings>

Вот мой XPATH-запрос, который поднимает проблему

Sub test (xmlDoc) 
    Dim hour As Single
    Dim node
    hour = 17 
    Set Node = xmlDoc.SelectSingleNode("//Meetings/Meeting[startHour<" & hour & " and endHour>" & hour & "]/Object")
    Range("A1").Value = Node.Text 
End Sub 

Он вызывает ошибку времени выполнения '-2147467259 (80004005)', ожидается ']' найдено 'NAME'.Я пытался делать запросы с каждым отдельным условием, и они работали.Я думаю, что проблема связана с синтаксисом "и", но я не могу понять, что это такое.

1 Ответ

0 голосов
/ 01 июля 2019

Вот простой подход.

//Meetings/Meeting[startHour[. <17]][endHour[.>12]]/Object

enter image description here

Что не так с вашим xpath:

Вы можете использовать оператор <или> непосредственно на узле, вместо этого вам нужно получить текст, а затем использовать операторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...