假设我需要在给定字符串中 unescape XML转义字符:例如我需要将&
替换为&
,将"
替换为"
,将<
替换为<
等。我更倾向于使用纯功能解决方案。< / p>
使用scalaz.Zipper
执行此操作是否有意义? Zipper
允许检查焦点右侧的字符并在向前移动时跳过它们。这不是一个矫枉过正的事吗?你会建议一个更简单的解决方案吗?
答案 0 :(得分:1)
Zipper
更擅长处理需要访问任意一方字符的1:1字符字符映射,而不是更改字符串中字符数的映射。
我建议使用XML解析库(scala有一个scala-xml形式的合理内置函数),一个字符串转义/非转义实用程序函数(其中包含一个) apache commons处理xml实体IIRC)或者如果你真的想要一个花哨的解决方案,那么可能用scala-parser-combinators解析你的字符串。