美文网首页
【erlang】erlsom的简单的使用

【erlang】erlsom的简单的使用

作者: 夏澪 | 来源:发表于2019-05-29 17:27 被阅读0次

    前言

    和银行打交道,还是不可避免会用到 xml。erlang 有一个 xml 解析工具名为 erlsom,可以做一些简单的解析。

    代码

    xml_to_map(Xml) ->
      {ok, KVList, _LeftData} = erlsom:simple_form(Xml),
      analyze([KVList], #{}).
    
    analyze([], Map) ->
      Map;
    analyze([{Key, [], ValueList} | Tail], Map) ->
      NewMap = maps:put(binary:list_to_bin(Key), analyze(ValueList, #{}), Map),
      analyze(Tail, NewMap);
    analyze([{_, [{_, Key}], ValueList} | Tail], Map) ->
      NewMap = maps:put(binary:list_to_bin(Key), analyze(ValueList, #{}), Map),
      analyze(Tail, NewMap);
    analyze([Val], _Map) ->   %%循环, 找到底层数据
      unicode:characters_to_binary(Val).
    

    这个解析方法会保持内部的数据结构,对于简单的 xml 可以做到正确的解析,并保持层次结构

     <xml>val</xml>   --->     #{<<"xml">> => val}
    

    相关文章

      网友评论

          本文标题:【erlang】erlsom的简单的使用

          本文链接:https://www.haomeiwen.com/subject/lktutctx.html