概要: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() ->
- <span style="white-space:pre"> </span>{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}]),