概要:Erlang中xml的使用方法。
由于Erlang中数据的转换可以采用从tuple直接转成xml。
格式:
-
{Tag, Attributes, Content} {节点名,属性,元素}
-
{Tag, Content}
-
Tag
-
IOString
说明:
-
Tag = atom()
-
Attributes = [{Name, Value}]
-
Name = atom()
-
Value = IOString | atom() | integer()
例子:
-module(test).
-compile(export_all).
get_data() ->
{filemeta,[{id,'/Foo'},{bar,12111111113}], [{name,["11"]},{age,["1"]}]}.
start() ->
Temp = xmerl:export_simple([get_data()], xmerl_xml),
io:format("~p~n",[Temp]),
Test = lists:flatten(Temp),
io:format("~p~n",[Test]),
ok.
结果:
["<?xml version=\"1.0\"?>",
[[["<","filemeta",
[[" ","id","=\"","/Foo","\""],[" ","bar","=\"","12111111113","\""]],
">"],
[[["<","name",">"],["11"],["</","name",">"]],
[["<","age",">"],["1"],["</","age",">"]]],
["</","filemeta",">"]]]]
"<?xml version=\"1.0\"?><filemeta id=\"/Foo\" bar=\"12111111113\"><name>11</name><age>1</age></filemeta>"
注意事项:
1.属性的值可以是‘11’,“11”,11,或者是["11"]。最终都会被转变为字符串。
2.元素的格式必须是{Name, [Value]},Value==IOString。
ps:
增加encoding属性,因为默认为“<?xml version=\"1.0\"?>”:
-define(xml_prolog, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>").
Xml = xmerl:export_simple([data], xmerl_xml,[{prolog, ?xml_prolog}]),
thomesca(北蔡):http://blog.csdn.net/thomescai (转载请保留)