Erlang 如何使用ejabberd hook muc_过程获得IQ的子元素

Erlang 如何使用ejabberd hook muc_过程获得IQ的子元素,erlang,elixir,xmpp,ejabberd,Erlang,Elixir,Xmpp,Ejabberd,我正在使用elixir为ejabberd创建一个自定义模块,我可以使用ejabberd hook:muc_process_IQ过滤IQ,但我不知道如何从IQ中获得不同的子元素和值 defmodule FilterPacket do 需要记录器 @行为:gen_mod def启动(主机,选择)do Logger.info('正在启动ejabberd模块筛选器数据包') 添加(:muc_进程_iq,主机,_模块,:on_筛选器_数据包,50) :好的 结束 def停止(主机)do Logger.in

我正在使用elixir为ejabberd创建一个自定义模块,我可以使用ejabberd hook
:muc_process_IQ
过滤IQ,但我不知道如何从IQ中获得不同的子元素和值

defmodule FilterPacket do
需要记录器
@行为:gen_mod
def启动(主机,选择)do
Logger.info('正在启动ejabberd模块筛选器数据包')
添加(:muc_进程_iq,主机,_模块,:on_筛选器_数据包,50)
:好的
结束
def停止(主机)do
Logger.info('正在停止ejabberd模块筛选器数据包')
Ejabberd.Hooks.delete(:muc_进程_iq,主机,_模块,:on_筛选器_数据包,50)
:好的
结束
def on_filter_数据包(iq、状态)do
Logger.info(“这是IQ{inspect IQ}”)
#我想在这里得到智商的子元素
结束
def取决于(_主机,_选项)do
[]
结束
def mod_选项(_主机)do
[]
结束
结束