【问题标题】:How to extract data from xml on ejabberd server?如何从 ejabberd 服务器上的 xml 中提取数据?
【发布时间】:2020-12-10 22:31:20
【问题描述】:

我正在使用自定义模块来查看 ejabberd 服务器上每个即将到来的数据包的数据。我在终端上打印的日志如下:

18:30:06.370 [info] mod_stanza_ack a presence has been sent coming from: {jid,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<"2923451306214954478930">>,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<"2923451306214954478930">>}
18:30:06.371 [info] mod_stanza_ack a presence has been sent to: {jid,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<>>,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<>>}
18:30:06.372 [info] mod_stanza_ack a presence has been sent with the following packet:
 {presence,<<"IaOQN-29">>,unavailable,<<"en">>,{jid,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<"2923451306214954478930">>,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<"2923451306214954478930">>},{jid,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<>>,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"faiqkhan-virtualbox">>,<<>>},undefined,[],undefined,[],#{ip => {0,0,0,0,0,65535,49320,422}}}

如何使用特定标签从 xml 格式中提取数据,例如: 从第一行和第二行开始:jid

【问题讨论】:

    标签: ejabberd


    【解决方案1】:

    使用https://github.com/processone/xmpp#stanzas

    在... ejabberd 源代码中有大量示例代码:P

    【讨论】:

    • 无法理解谁可以正确使用它来从列表中获取单个值。我是 ejabberd 的新手。 {jid, >, >, >, >, >, > } 我试图得到一个这样的值:fromId = 67456efc-be57-4cbd-a176-527de2dce19d
    • 代替 From,使用:From#jid.user
    • 是否有任何函数或库可以像其他语言一样直接给我一个字符串?因为,您提供给我的获取用户 ID 的方式是以这种格式返回 >。将此格式转换为普通字符串格式是否需要任何额外的工作?
    • 这是一个erlang二进制格式的字符串。您想要一个 erlang 列表格式的字符串,因此将其转换为: binary_to_list(From#jid.user)
    猜你喜欢
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    相关资源
    最近更新 更多