2009-02-27 24 views
5

Sto cercando di ottenere il numero di nodi specifici in un file XML utilizzando la funzione di conteggio XPath, tuttavia, questo continua a restituire un errore "Un'eccezione di tipo 'msxml3.dll: Espressione non restituisce un DOM nodo."Conteggio XPath in VBScript

Come faccio ad avere il valore di ritorno da un conteggio XPath utilizzando VBScript e DOM MSXML

Dim oXML  
Dim homeId 
Dim awayId 
Dim homeGoals 
Dim awayGoals 
Set oXML = Server.CreateObject("Microsoft.XMLDOM") 

oXML.async = false 
oXML.SetProperty "SelectionLanguage", "XPath" 
oXML.SetProperty "ServerHTTPRequest", True 
oXML.validateOnParse = False 
oXML.resolveExternals = False 

fileName = "http://server:8090/data/results/m12345.xml") 
oXML.load (fileName) 

homeId = oXML.SelectSingleNode("/SoccerMatch/Team[@homeOrAway='Home']/@id").text 
awayId = oXML.SelectSingleNode("/SoccerMatch/Team[@homeOrAway='Away']/@id").text 
Set homeGoals = oXML.SelectSingleNode("count(/SoccerMatch/Goals/Goal[@teamId="&homeId&"])") 
Set awayGoals = oXML.SelectSingleNode("count(/SoccerMatch/Goals/Goal[@teamId="&awayId&"])") 

risposta

10

È possibile utilizzare solo XPaths che restituiscono nodi in MSXML, altre funzioni XPath può essere utilizzato solo in predicati che in ultima analisi, il risultato in una selezione di nodi.

Uso: -

homeGoals = oXML.SelectNodes("/SoccerMatch/Goals/Goal[@teamId="&homeId&"]").length