утверждение с Xpath - PullRequest
0 голосов
/ 30 июня 2010

Я пытаюсь утвердить SOAP-ответ, используя Xpath для выбора определенных узлов, вот мой XML-ответ

<return>
<contactList>
               <contacts>
                  <person>
                     <contactId>3426</contactId>
                     <personName>
                        <names>
                              <firstName>Cosi</firstName>
                              <lastName>Como</lastName>
                              <middleName>Midi</middleName>
                        </names>
                     </personName>
                  </person>
                  </contacts>
            </contactList>
</return>

Я пытаюсь получить значение contactId, я пробовал и это //contactList/contacts/person[contactId='3426']/contactId и //*[local-name()='contactList'] /contacts/person[contactId='3426'], и ни одна из них не работает, я получаю этот результат No Nodes Matched как? это правильный синтаксис xpath и допустимый путь, есть ли альтернатива?

1 Ответ

1 голос
/ 30 июня 2010

Не видя полноценного SOAP-сообщения, я не могу быть уверен, но мое первое предположение - это пространства имен.

Использование local-name () в одном из ваших запросов подразумевает, что вы используете непустые пространства имен. Но даже во втором запросе ссылка на «контакты» без указания пространства имен приведет к сбою XPath, если на самом деле узел имеет непустое пространство имен.

Попробуйте //*[local-name()='contactList'] и посмотрите, есть ли у вас узел "contactList".

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