如果這是真的,你正在使用的代碼,那麼一開始這條線可能產生的錯誤:
For Each Domain In TheTDConnection.DomainsList
基於您的代碼的其餘部分「TheTDConnection」應爲「TDC」:
For Each Domain In tdc.DomainsList
哦,要做到這一點,您幾乎可以肯定首先會通過調用tdc.Login ...而不是僅連接到服務器來登錄。
在相關說明上,不建議使用DomainsList屬性。我想你可以循環訪問由GetAllVisibleProjectDescriptors返回的ProjectDescriptor對象列表,因爲它涵蓋了當前登錄用戶有權訪問的所有域下的所有項目。
編輯:這是一個基於原始問題的完整解決方案。這裏的工作測試代碼將循環訪問提供的用戶有權訪問的域/項目。假定您已安裝QC/ALM連接加載項(必需)。
如果您在64位機器上運行這一塊的VBScript的,你需要使用WScript.exe的32位版本的運行它:C:\Windows\SysWOW64\wscript.exe "c:\somewhere\myscript.vbs"
msgbox "Creating connection object"
Dim tdc
Set tdc = CreateObject("TDApiOle80.TDConnection")
msgbox "Connecting to QC/ALM"
tdc.InitConnectionEx "http://<yourServer>/qcbin/"
msgbox "Logging in"
tdc.Login "<username>", "<password>"
Dim projDesc
msgbox "Getting project descriptors"
Set projectDescriptors = tdc.GetAllVisibleProjectDescriptors
For Each desc In projectDescriptors
msgbox desc.DomainName & "\" & desc.Name
Next
msgbox "Logging out"
tdc.Logout
msgbox "Disconnecting"
tdc.Disconnect
msgbox "Releasing connection"
tdc.ReleaseConnection
編輯2:
如果您想要將sa.GetAllDomains中生成的XML解析到服務器上的所有域\項目項目列表中(這是VBScript,因爲原始問題&標記仍然提及它,並且已經過測試):
Set objDoc = CreateObject("MSXML.DOMDocument")
objDoc.Load "C:\yourXmlFile.xml"
Set objRoot = objDoc.documentElement
For Each domain in objRoot.selectNodes("TDXItem")
For Each project in domain.selectNodes("PROJECTS_LIST/TDXItem")
msgbox domain.selectSingleNode("DOMAIN_NAME").text & "\" & project.selectSingleNode("PROJECT_NAME").text
Next
Next
哪條語句產生「需要對象」錯誤? – Xiaofu
您幾乎完全改變了您的代碼。您的原始問題與IXMLDOMNodeList無關,並與從ALM API獲取域和項目有關。如果解決了這個問題,那麼你應該爲你的文件解析需求提出一個不同的問題。 – Xiaofu
...並且現在也使用不同的API! (是OTA API,現在是SiteAdmin API) – Xiaofu