在Scala中使用Zipper进行XML转换

时间:2015-01-14 07:28:06

标签: xml scala scalaz zipper

假设我需要在给定字符串中 unescape XML转义字符:例如我需要将&amp;替换为&,将&quot;替换为",将&lt;替换为<等。我更倾向于使用纯功能解决方案。< / p>

使用scalaz.Zipper执行此操作是否有意义? Zipper允许检查焦点右侧的字符并在向前移动时跳过它们。这不是一个矫枉过正的事吗?你会建议一个更简单的解决方案吗?

1 个答案:

答案 0 :(得分:1)

Zipper更擅长处理需要访问任意一方字符的1:1字符字符映射,而不是更改字符串中字符数的映射。

我建议使用XML解析库(scala有一个scala-xml形式的合理内置函数),一个字符串转义/非转义实用程序函数(其中包含一个) apache commons处理xml实体IIRC)或者如果你真的想要一个花哨的解决方案,那么可能用scala-parser-combinators解析你的字符串。

相关问题