我有一个 erlang 字符串,其中可能包含 & "< 等字符:
1> Unenc = "string & \"stuff\" <".
ok
是否有一个 Erlang 函数可以解析字符串并对所有需要的 HTML/XML 实体进行编码,例如:
2> Enc = xmlencode(Unenc).
"string & "stuff" <".
?
我的用例是来自用户输入的相对较短的字符串。 xmlencode 函数的输出字符串将是 XML 属性的内容:
<company name="Acme & C." currency="€" />
最终的 XML 将通过网络适本地发送。
最佳答案
Erlang 发行版中有一个函数可以转义尖括号和&符号,但没有记录在案,因此最好不要依赖它:
1> xmerl_lib:export_text("string & \"stuff\" <").
"string & \"stuff\" <"
如果您想要构建/编码 XML 结构(而不是仅仅编码单个字符串),那么 xmerl API 将是一个不错的选择,例如
2> xmerl:export_simple([{foo, [], ["string & \"stuff\" <"]}], xmerl_xml).
["<?xml version=\"1.0\"?>",
[[["<","foo",">"],
["string & \"stuff\" <"],
["</","foo",">"]]]]
关于xml - 我如何在 Erlang 中对字符串进行 XML 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339014/