0
我目前從win32com軟件包開始。我有哪裏我使用的Python編程COM對象XSL文件:python COM服務器查詢界面
<xsl:value-of select="plugin:GetTest(.)"/>
XSL轉換使用MSXML2 XSL處理器和Python COM對象所做的是使用ADDOBJECT方法注入。 的GetTest方法的實施如下:
def GetTest(self, obj):
IID_IXMLDOMNode = IID("{2933BF80-7B36-11d2-B20E-00C04F983E60}")
try:
node = win32com.client.Dispatch(obj, None, IID_IXMLDOMNode)
#node = obj.QueryInterface(IID_IXMLDOMNode)
return node.get_text()
except Exception as e:
return format_exc()
的OBJ參數具有鍵入PyIDispatch。爲了與我的IXMLDOMNode節點接口一起工作,我必須以某種方式獲得它,對吧?然而,沒有註釋的方法失敗,
AttributeError: <unknown>.get_text
而且評價方法未能與
obj.QueryInterface(IID_IXMLDOMNode)<\u000d>pywintypes.com_error: (-2147467262, 'No such interface supported'
有誰能夠有什麼樣的建議我做錯了什麼?提前致謝。
我從來沒有使用MSXML與Python,所以我不能評估代碼的Python部分,但據我記得,當你使用例如從JScript或VBScript 'foo:method(。)'在XSLT端,您不會將單個節點傳遞給方法,而是選擇https://msdn.microsoft.com/zh-cn/library/ms759171(v=vs.85 ).aspx,所以你可能想試試你的Python代碼是否可以轉換爲選擇而不是節點。 –
謝謝。你是對的,_obj_是DOM選擇 –