Пример кода: XML-атрибут VB getNamedItem в Microsoft MSXML.DOMDocument

Извиняюсь, я знаю, что это старые добрые времена, но у меня здесь немного угасает мозг, мне просто нужен конкретный пример кода, чтобы продолжить...

Это проблема с использованием фрагмента XML, возвращаемого удаленной службой.

<pap>
  <push-response push-id = "99c2d0d3-6cce-4207-88c4-54bc8e852501">
    <address address-value = "WIN">5557489580</address>
    <response-result code = "1000"/>
  </push-response>
</pap>

Несколько лет назад я написал простую функцию VB, которая извлекает нужные мне данные из XML.

<%@ Page Language = "VB" explicit = "true" validateRequest = "false" %>
<%@ Import namespace = "ADODB" %>
<%@ Import namespace = "WinHttp" %>
<%@ Import namespace = "MSXML" %>
<%@ Import namespace = "Scripting" %>

<script language = "VB" runat = "Server">

Function ExtractDataFromXML2(ByRef sInputXML As String) As String
Dim XMLDom As MSXML.DOMDocument
Dim currNode As MSXML.IXMLDOMNodeList
Dim Node As MSXML.IXMLDOMNode
Dim sError As String
Dim sMessageID As String
Dim sResult As String

XMLDom = New MSXML.DOMDocument
XMLDom.async = False
If (XMLDom.loadXML(sInputXML) = False) Then
    sResult = "XML Parse Error: " & XMLDom.parseError.reason & " code = " & XMLDom.parseError.errorCode & " " & Chr(13) & Chr(10)
Else
    currNode = XMLDom.selectNodes("//push-response")
    For Each Node In currNode
        sError = Node.selectSingleNode("response-result").attributes.getNamedItem("code").Text
        sMessageID = "rubbish"
        If sError = "1000" Then
            sResult = Node.selectSingleNode("address").Text & "@" & sMessageID
        Else
            sResult = "Error " & sError & ": " & Node.selectSingleNode("response-result").attributes.getNamedItem("desc").Text          
        End If
    Next Node
End If
ExtractDataFromXML2 = sResult
End Function

</script>

Хоть убей, я не могу вспомнить, как вставить этот идентификатор GUID в мой инициализированный в настоящее время «мусор» sMessageID.

В противном случае работает нормально... требуется только ОДНА СТРОКА VB, пожалуйста..?

Это не VBScript, это VBA.

user692942 21.06.2024 08:39

Верно, в этом случае VB.Net отличается еще сильнее.

user692942 21.06.2024 09:46

Отвечает ли это на ваш вопрос? Получить атрибуты XML в VB Net

user692942 21.06.2024 09:50

Отвечает ли это на ваш вопрос? Как определить, имеет ли XmlNode определенный атрибут?

user692942 21.06.2024 10:54

Просто нужно немного поискать, прежде чем задавать вопрос.

user692942 21.06.2024 10:55

Разобрались, Мартин Хоннен дал мне совет. Спасибо за интерес, дело закрыто.

Emsg 21.06.2024 10:56

Вы упускаете суть, но ладно, ваша помощь пошла вам на пользу.

user692942 21.06.2024 11:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
136
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Должен быть.

sMessageID = Node.attributes.getNamedItem("push-id").Text

Здоровья, дружище..! :о)

Emsg 21.06.2024 08:41

Где вы отвечаете за VBScript, VBA или VB.Net, сказать сложно. Если это был VBScript, то для него уже существует очень хорошая каноническая версия, выпущенная более 7 лет назад! - Как получить значение атрибута XML?.

user692942 21.06.2024 09:56

@user692942 user692942, я попытался предложить утверждение, соответствующее синтаксису, методам и свойствам, уже использованным в коде, и сказал, что нужно выполнить работу для других значений, не имея возможности точно сказать, какая это версия/вариант VBX. Кажется, на плакате позже было написано, что это VB.NET (хотя и с MSXML?), я точно не могу сказать. Пусть автор решит, полезен ли ответ.

Martin Honnen 21.06.2024 10:03

В любом случае, будь то VBScript или VB.Net, существует канонический вопрос, который уже существует, если не множественный, все это лишь еще больше разбавляет его еще большей двусмысленностью.

user692942 21.06.2024 10:13

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