read node net leer ejemplos xml vbscript selectsinglenode

node - xml path c#



selectSingleNode usando vbscript (1)

Debajo está la estructura de mi archivo xml:

<configuration> <appSettings> <add key="ProductVersion" value="5.5.5"/> <add key="LogsDirectory" value="e://Logs"/> </appSettings> <configuration>

Estoy intentando seguir el código para obtener valor de LogsDirectory:

configurationFilePath = "e:/conf.xml" Set xmlDoc = CreateObject("MSXML2.DomDocument.6.0") xmlDoc.async = false Call xmlDoc.load(configurationFilePath) xpath1 = ".//configuration/appSettings/add[@key=''LogsDirectory'']/@value" LogsDirectory = xmlDoc.selectSingleNode(xpath1)

Pero está dando error como objeto requerido.

Cualquier ayuda muy apreciada.

Gracias


Las personas que no usan un esqueleto de comprobación de errores para XML funcionan de la siguiente manera:

Option Explicit Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject") Dim sFSpec : sFSpec = oFS.GetAbsolutePathName("./19194544.xml") Dim oXDoc : Set oXDoc = CreateObject("MSXML2.DomDocument.6.0") oXDoc.setProperty "SelectionLanguage", "XPath" oXDoc.async = False oXDoc.load sFSpec If 0 = oXDoc.ParseError Then WScript.Echo sFSpec, "looks ok" Dim sXPath For Each sXpath In Array( _ ".//configuration/appSettings/add[@key=''LogsDirectory'']/@value" _ ) Dim ndFnd : Set ndFnd = oXDoc.selectSingleNode(sXpath) If Not ndFnd Is Nothing Then WScript.Echo "found |" & ndFnd.xml & "|" Else WScript.Echo "not found |" & sXPath & "|" End If Next Else WScript.Echo oXDoc.ParseError.Reason End If

también haga bungee jumping sin cuerdas.

En tu caso, el .ParseError.Reason

The following tags were not closed: configuration, configuration.

explica por qué no hay ningún documento para buscar. Al menos, esto evita el error que obtendría cuando intente asignar el nodo devuelto por .selectSingleNode () a LogsDirectory sin utilizar Set.