2009-02-27 25 views
5

Tôi đang cố gắng lấy số lượng nút cụ thể trong một tệp XML bằng cách sử dụng hàm đếm XPath, tuy nhiên, điều này liên tục trả về lỗi "Ngoại lệ loại" msxml3.dll: Biểu thức không trả về DOM nút."Số XPath trong VBScript

Làm thế nào để có được giá trị trả về từ một số XPath sử dụng VBScript và 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&"])") 

Trả lời

10

Bạn chỉ có thể sử dụng XPath trả lại Nodes trong MSXML, chức năng XPath khác chỉ có thể được sử dụng trong các vị từ mà cuối cùng dẫn trong một lựa chọn các nút.

Sử dụng: -

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