2012-03-06 35 views
0

我正在使用XMPP測試工具,使用Twisted xpath來匹配XMPP消息。Python中的XPATH Twisted是否支持這種語法:「/message/body[.='test']」?

假設我有這樣一個消息節:

<message to='xxx' type='chat'><body>test</body></message> 

如果我想匹配的消息的正文文本值是「測試」,然後爲標準XPath語法,這將是:

"/message/body[.='test']" 

但是這種語法在twisted中不受支持。

我的問題是:無論如何解決這個問題?或者這是不可能的?

在此先感謝。

回答

0

Twisted Words爲XMPP交互提供的xpath支持非常有限。這遠遠不是完整的xpath實現。因此,對於是否支持某些xpath功能的任何特定問題,答案很可能是不支持的。

理想情況下,Twisted Words根本不需要xpath實現。它可以建立在Python可用的其他xpath實現之上(例如,由lxml公開的那個)。但是,還沒有人確定如何實現這一目標(考慮到Twisted Words也爲XMPP使用了自定義DOM實現)。

在完成該任務之前,您可以通過查看twisted/words/xish/xpathparser.g末尾的語法來了解xpath的哪些部分是受支持的。

據我所知,沒有人發明過將Twisted Words DOM與另一個xpath庫結合起來的方法,所以你只是堅持缺少的功能(如果你知道這樣一個發明,或者發明了這樣的一個發明自己動手,讓我們知道吧!這可能會讓上述任務變得更簡單:)。

+0

好的,我明白了。感謝您的解釋。我可能只是使用xpath來查找節,然後使用字符串搜索來匹配文本值。 – user1251416 2012-03-07 01:20:36