Читать атрибут XML VBA - PullRequest
5 голосов
/ 14 марта 2011

Я пытаюсь получить атрибут одного узла в 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 ]

16 голосов
/ 14 марта 2011

Попробуйте:

(Включите ссылку на 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
0 голосов
/ 30 марта 2013

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

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