【问题标题】:Read XML Attribute VBA读取 XML 属性 VBA
【发布时间】:2011-07-14 21:37:35
【问题描述】:

我正在尝试在 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 属性的值。任何帮助将不胜感激。

【问题讨论】:

    标签: xml excel dom vba soap


    【解决方案1】:

    我尝试使用类似的代码从 Web 服务提供的 XML 文件中加载和提取属性。事实证明,除非您将 xDoc.async 属性设置为 false,否则 xDoc.Load() 会立即返回,然后您的其余代码就会浪费掉。

    【讨论】:

      【解决方案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
      

      【讨论】:

      • 如何首先检查属性是否存在?编辑:Attributes.getNamedItem("ID") 什么都没有
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2021-03-07
      • 1970-01-01
      相关资源
      最近更新 更多