2012-03-06 59 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