私はこれをテストしました。これは非常に基本的なものですが、うまく機能していますが、かなり非効率的であり、これを行うためのより良い方法があるかもしれません (騎兵隊が到着するのを待ちます):
1> X = {xmlelement,"presence", [{"xml:lang","en"}, {"ver","6.00.00"}, {"to", "test@conference.localhost/user"}], [{xmlelement,"c", [{"xmlns", "http://jabber.org/protocol/caps"}, {"node", "http://www.google.com/xmpp/client/caps/"}, {"ver", "eVvrsq8jya/4AZMjFl5BeDKSmg4="}, {"hash","sha-1"}], []}, {xmlelement,"nick", [{"xmlns", "http://jabber.org/protocol/nick"}], [{xmlcdata,<<"user">>}]}, {xmlelement,"x", [{"xmlns", "http://jabber.org/protocol/muc"}], [{xmlelement,"history", [{"maxstanzas","20"}, {"maxchars","32768"}], []}]}]}.
{xmlelement,"presence",
[{"xml:lang","en"},
{"ver","6.00.00"},
{"to","test@conference.localhost/user"}],
[{xmlelement,"c",
[{"xmlns","http://jabber.org/protocol/caps"},
{"node","http://www.google.com/xmpp/client/caps/"},
{"ver","eVvrsq8jya/4AZMjFl5BeDKSmg4="},
{"hash","sha-1"}],
[]},
{xmlelement,"nick",
[{"xmlns","http://jabber.org/protocol/nick"}],
[{xmlcdata,<<"user">>}]},
{xmlelement,"x",
[{"xmlns","http://jabber.org/protocol/muc"}],
[{xmlelement,"history",
[{"maxstanzas","20"},
{"maxchars","32768"}],
[]}]}]}
2> {xmlelement,_,[{_,_},{_,_},{_,_}],[{xmlelement,_,[{_,_},{"node",Node},{_,_},{_,_}],[]},{xmlelement,_,[{_,_}],[{xmlcdata,_}]},{xmlelement,_,[{_,_}],[{xmlelement,_,[{_,_},{"maxchars",MaxChars}],[]}]}]} = X.
{xmlelement,"presence",
[{"xml:lang","en"},
{"ver","6.00.00"},
{"to","test@conference.localhost/user"}],
[{xmlelement,"c",
[{"xmlns","http://jabber.org/protocol/caps"},
{"node","http://www.google.com/xmpp/client/caps/"},
{"ver","eVvrsq8jya/4AZMjFl5BeDKSmg4="},
{"hash","sha-1"}],
[]},
{xmlelement,"nick",
[{"xmlns","http://jabber.org/protocol/nick"}],
[{xmlcdata,<<"user">>}]},
{xmlelement,"x",
[{"xmlns","http://jabber.org/protocol/muc"}],
[{xmlelement,"history",
[{"maxstanzas","20"},
{"maxchars","32768"}],
[]}]}]}
3> Node.
"http://www.google.com/xmpp/client/caps/"
4> MaxChars.
"32768"
5>
オンライン2>
では、その「形式」で期待される値をパターン一致させます。値を取得したい場所にバインディングを配置し、可能であれば、XML パケットで変更されないアトムなど、いくつかの制約を確立します。理解していただければ幸いです。