使用erlang解析ejabberd数据包中的自定义元素
我需要解析消息中的自定义元素。我的信息格式如下。如何解析这些值使用erlang解析ejabberd数据包中的自定义元素,erlang,ejabberd,Erlang,Ejabberd,我需要解析消息中的自定义元素。我的信息格式如下。如何解析这些值 <?xml version="1.0" encoding="UTF-8"?> <message to="XXXX@chat.XYZ.com" id="v0k4h-128" type="chat"> <body>Hi</body> <request xmlns="urn:xmpp:receipts" /> <customInfo xmlns="urn:
<?xml version="1.0" encoding="UTF-8"?>
<message to="XXXX@chat.XYZ.com" id="v0k4h-128" type="chat">
<body>Hi</body>
<request xmlns="urn:xmpp:receipts" />
<customInfo xmlns="urn:xmpp:customInfo">
<customElement1>Some Text</customElement1>
<customElement2 />
<customElement3 />
<customElement4>Some Text</customElement4>
</customInfo>
</message>
你好
一些文本
一些文本
我建议您使用。将xml保存到名为t.xml
的文件中
我建议您使用。将xml保存到名为t.xml
的文件中
这是无效的XML 1.0。请参阅“34元素类型“customElement1”必须由匹配的结束标记终止”。“这是我在此处更正的键入错误。这是无效的XML 1.0。请参阅“34元素类型“customElement1”必须由匹配的结束标记终止”。“这是我在此处更正的键入错误。请提供更多帮助,你能提供更多的帮助吗
1> {ParsResult,Misc}=xmerl_scan:file("t.xml").
{{xmlElement,message,message,[],
{xmlNamespace,[],[]},
[],1,
[{xmlAttribute,to,[],[],[],
[{message,1}],
1,[],"XXXX@chat.XYZ.com",false},
{xmlAttribute,id,[],[],[],
[{message,1}],
2,[],"v0k4h-128",false},
{xmlAttribute,type,[],[],[],
[{message,1}],
3,[],"chat",false}],
[{xmlText,[{message,1}],1,[],"\n ",text},
{xmlElement,body,body,[],
{xmlNamespace,[],[]},
[{message,1}],
2,[],
[{xmlText,[{body,2},{message,1}],1,[],"Hi",text}],
[],".",undeclared},
{xmlText,[{message,1}],3,[],"\n ",text},
{xmlElement,request,request,[],
{xmlNamespace,'urn:xmpp:receipts',[]},
[{message,1}],
4,
[{xmlAttribute,xmlns,[],[],[],[...],...}],
[],[],".",undeclared},
{xmlText,[{message,1}],5,[],"\n ",text},
{xmlElement,customInfo,customInfo,[],
{xmlNamespace,'urn:xmpp:customInfo',[]},
[{message,1}],
6,
[{xmlAttribute,xmlns,[],[],...}],
[{xmlText,[{...}|...],1,...},
{xmlElement,customElement1,...},
{xmlText,...},
{...}|...],
[],".",undeclared},
{xmlText,[{message,1}],7,[],"\n",text}],
[],".",undeclared},
[]}
2>