私がやりたいことは、指定されたルート要素にのみ反応することです。たとえば、ユーザーが次のような XmlStream を送信した場合:
<auth>
<login>user</login>
<pass>dupa.8</pass>
</auth>
私のメソッド ._auth を実行する必要があります。connectionMade メソッド内で呼び出される addObserver メソッドで実行しました。
self.addObserver("/auth", self._auth)
AFAIK XPath - 「/auth」と書くと、ルート要素を「auth」にすることを意味するため、次のメッセージが表示されます。
<longtagislong>
<auth>...</auth>
</longtagislong>
...認証はルートではないため、拒否する必要があります。
しかし、Twisted は思ったように動作しません - 私の _auth メソッドは、最初のメッセージではなく、2 番目のメッセージ (ツリー内の auth 要素) が表示されたときに実行されます - auth 要素をルートとして使用します。
だから、私の質問は: ルート要素の名前が「auth」の場合にのみ反応したいことを Twisted と addObserver メソッドに伝える方法は?