在Erlang中处理XML数据

2009-03-09
xmerl_lib有一个方便处理XML的函数simplify_element(但该函数没有公开在文档里),可以用来解析和处理XML数据,如下例:
xml_example() ->
Options=[{space,normalize},{encoding,"utf-8"}],
Str=”<root title=’test’><person id=’oscar’ gender=’m'>Oscar Tang</person>
<person id=’jojo’ gender=’f'>JoJo Zhou</person></root>”,
{Xml,_}=xmerl_scan:string(Str,Options),
xmerl_lib:simplify_element(Xml).


上述函数运行在我机上大约耗时230微秒(绝大部分耗在xmerl_scan:string函数上),即每秒可以将超过4000个XML数据从字符串转换成如下数据结构:
{root,[{title,"test"}],[
{person,[{id,"oscar"},{gender,"m"}],["Oscar Tang"]},
{person,[{id,"jojo"},{gender,"f"}],["JoJo Zhou"]}
]}


返回数据的一般结构为:
{node_name,[attributes],[children]}

M-OSCAR | Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com