2009-02-27 7 views
5

J'essaie d'obtenir le nombre de nœuds spécifiques dans un fichier XML en utilisant la fonction de comptage XPath, cependant, cela continue à renvoyer une erreur "Une exception de type" msxml3.dll: Expression ne retourne pas un DOM nœud."XPath count dans VBScript

Comment puis-je obtenir la valeur de retour d'un nombre XPath en utilisant VBScript et MSXML DOM

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&"])") 

Répondre

10

Vous ne pouvez utiliser XPath qui retournent les nœuds dans MSXML, d'autres fonctions XPath ne peuvent être utilisés dans les prédicats qui résultent en fin de compte dans une sélection de nœuds.

Utilisation: -

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