2009-02-27 10 views
5

में XPath गिनती मैं XPath गिनती फ़ंक्शन का उपयोग कर किसी XML फ़ाइल में विशिष्ट नोड्स की संख्या प्राप्त करने का प्रयास कर रहा हूं, हालांकि, यह "त्रुटि का एक अपवाद" msxml3.dll त्रुटि देता है: अभिव्यक्ति एक डोम नहीं लौटाती है नोड। "वीबीस्क्रिप्ट

मैं कैसे VBScript और 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&"])") 

उत्तर

10

आप केवल XPaths कि MSXML में नोड्स लौट उपयोग कर सकते हैं एक XPath गिनती से वापसी मान मिलता है, अन्य XPath कार्यों केवल विधेय में इस्तेमाल किया जा सकता है कि अंततः परिणाम नोड्स के चयन में।

का उपयोग करें: -

homeGoals = oXML.SelectNodes("/SoccerMatch/Goals/Goal[@teamId="&homeId&"]").length 
संबंधित मुद्दे