XmlStream.addObserverでのXPathはそれが必要ように動作しません。

StackOverflow https://stackoverflow.com/questions/373189

  •  22-08-2019
  •  | 
  •  

質問

私は何をしたいだけ指定されたルート要素に反応させることです。

:ユーザーがXmlStreamを送信した場合たとえば、それは次のようになります
<auth>
    <login>user</login>
    <pass>dupa.8</pass>
</auth>
実行されるべき._auth

私の方法。私はconnectionMadeメソッド内部で呼び出さaddObserver方法でそれをやった。

self.addObserver("/auth", self._auth)

私の知る限りのXPath - 私は「/ AUTH」を書いた場合ので、そのメッセージには、私は私のルート要素が「認証」になりたいということを意味します:

<longtagislong>
    <auth>...</auth>
</longtagislong>
認証がルートではないので、

...、拒否されなければならない。

しかし、ツイストは、しかし、私はそれがなければならないと思った方法では動作しません - 2番目のメッセージは、(ツリー内部の認証要素で)表示されたときに、私の_auth方法は最初のものではなく、実行されます - 。rootとして認証要素とを

だから、私の質問は:私は、ルート要素の名前が「認証」する場合にのみ反応するようにしたいツイストとaddObserver方法を伝えるためにどのように

役に立ちましたか?

解決

[OK]を、最終的に私は答えを得ました。それは理由XmlStream自体のです。メインルート要素(:<stream/>など)閉じられていないように接続が限りアクティブです。その中にすべてが「/ AUTH」は<stream><auth></auth></stream>を意味理由です、XPathのためのルート要素です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top