xml - 我如何在 Erlang 中对字符串进行 XML 编码?

标签 xml erlang html-encode xml-encoding

我有一个 erlang 字符串,其中可能包含 & "< 等字符:

1> Unenc = "string & \"stuff\" <".
ok

是否有一个 Erlang 函数可以解析字符串并对所有需要的 HTML/XML 实体进行编码,例如:

2> Enc = xmlencode(Unenc).
"string &amp; &quot;stuff&quot; &lt;".

?

我的用例是来自用户输入的相对较短的字符串。 xmlencode 函数的输出字符串将是 XML 属性的内容:

<company name="Acme &amp; C." currency="&euro;" />

最终的 XML 将通过网络适本地发送。

最佳答案

Erlang 发行版中有一个函数可以转义尖括号和&符号,但没有记录在案,因此最好不要依赖它:

1> xmerl_lib:export_text("string & \"stuff\" <").
"string &amp; \"stuff\" &lt;"

如果您想要构建/编码 XML 结构(而不​​是仅仅编码单个字符串),那么 xmerl API 将是一个不错的选择,例如

2> xmerl:export_simple([{foo, [], ["string & \"stuff\" <"]}], xmerl_xml).
["<?xml version=\"1.0\"?>",
 [[["<","foo",">"],
   ["string &amp; \"stuff\" &lt;"],
   ["</","foo",">"]]]]

关于xml - 我如何在 Erlang 中对字符串进行 XML 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339014/

相关文章:

java - 如何将解析后的 XML 显示到 ListView

javascript - 如何删除 XML 节点?

xml - 为项目生成 XML 文档

erlang - 不同的 Erlang 应用程序应该在同一台机器上共享同一个虚拟机吗?

list - Erlang 中可以定义循环列表吗?

jQuery、撇号和其他特殊字符

java - 如何创建采用 XML 并将一些数据绑定(bind)到 JPA 注释的 POJO 的 Camel 路由?

erlang - 在 erlang 模块中使用匿名函数时出现问题

html - 如何在 HTML 中正确显示此代码片段?

javascript - 是否有用于将字符串编码为 HTML 的内置 jQuery 函数?