我在Packet
:
{xmlelement,"message",
[{"from", "ddfadfdf.com@54.69.16.10/26526129921433241378891365"},
{"to", "afdafdfaf.com@54.69.16.10/30014432481433242528199830"}],
[{xmlelement,"received",
[{"xmlns",
"urn:xmpp:receipts"},
{"id", "018A12FB-0718-4304-87FD-430C59EDB4F9"}],
[]}]}
我只需要在id
XML元素下获取received
属性的值。
答案 0 :(得分:2)
您可以使用函数xml:get_path_s
,让它下降到名为received
的元素中,以获取名为id
的属性:
> xml:get_path_s(Packet, [{elem, "received"}, {attr, "id"}]).
"018A12FB-0718-4304-87FD-430C59EDB4F9"
请注意,问题及以上解决方案适用于旧版本的ejabberd,即2.1.x.您可以区别对待,因为旧版本会在问题中使用xmlelement
条记录,但较新版本会使用xmlel
条记录。
对于较新的ejabberd版本,xml
模块已被fxml
取代。函数名称相同,只需更改模块名称:
fxml:get_path_s(Packet, [{elem, "received"}, {attr, "id"}]).