要将字符串编码为XML,xmerl_lib:export_text
函数可以完成工作,但是哪个函数执行相反的工作,即将<
转换为>
?
我想转换一个完整的字符串,如:
<foo="bar">
要:
<foo="bar">
答案 0 :(得分:1)
我从来没能找到一个好的库,所以我创建了自己的解码功能。
decode(">" ++ Rest) ->
">" ++ decode(Rest);
decode("<" ++ Rest) ->
"<" ++ decode(Rest);
decode(""" ++ Rest) ->
"\"" ++ decode(Rest);
decode([]) ->
[].
根据wikipedia,XML只有五个字符引用,所以你应该可以支持这五个:
& → & (ampersand, U+0026)
< → < (less-than sign, U+003C)
> → > (greater-than sign, U+003E)
" → " (quotation mark, U+0022)
' → ' (apostrophe, U+0027)
答案 1 :(得分:1)
exml
包支持此功能:
https://github.com/paulgray/exml/blob/master/src/exml.erl#L54
一般来说,考虑exml over xmerl,但要注意它是一个基于NIF的解析器。