Читать атрибут XML VBA

Я пытаюсь получить атрибут одного узла в VBA, но не могу управлять им с помощью DOM

XML выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
   <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Body>
         <GetUserInfoResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/directory/">
            <GetUserInfoResult>
               <GetUserInfo>
                  <User ID="16" Name="" LoginName="login" Email="" Notes="" IsSiteAdmin="False" IsDomainGroup="False" />
            </GetUserInfo>
         </GetUserInfoResult>
      </GetUserInfoResponse>
   </soap:Body>
</soap:Envelope>

Я просто пытаюсь получить значение атрибута ID. Любая помощь будет оценена.

2 ответа

Решение

Пытаться:

(Включите ссылку на Microsoft XML v3, я сохранил ваш xml в файл на рабочем столе)

Dim xmlDoc As DOMDocument30
Set xmlDoc = New DOMDocument30
xmlDoc.Load ("C:\users\jon\desktop\test.xml")

Dim id As String
id = xmlDoc.SelectSingleNode("//GetUserInfo/User").Attributes.getNamedItem("ID").Text

Я попытался использовать похожий код для загрузки и извлечения атрибутов из предоставленного веб-сервисом XML-файла. Оказывается, что если вы не установите для свойства xDoc.async значение false, xDoc.Load() немедленно вернется, а затем весь ваш код будет потрачен впустую.

Другие вопросы по тегам