我试图从String值生成有效的XML标记。
我提供了这个例子:
String id = "hello world";
Expected XML tag: <hello_world>
这是一个简单的例子,但是当String包含其他字符时会变得复杂:
String id = "34/hello<he"
Expected XML tag: <hello_he> or something valid like this
问题是,有一些API或类可以实现这个过程吗?我知道这可以使用replaceAll()
来解决,但我想知道这是否可以自动完成。
答案 0 :(得分:3)
这是一种可能的算法。
将结果缓冲区初始化为“_”
对于输入中的每个(Java 16位)字符:
(2a)如果字符是下划线以外的有效名称字符,请将其附加到缓冲区
(2b)否则,将_HHHH附加到缓冲区,其中HHHH是十六进制的字符代码。
此算法为每个输入字符串生成唯一名称,并且是可逆的,因此您可以从生成的名称重建输入字符串。
答案 1 :(得分:-2)
解析String并替换特殊字符。
对于元素数据,请使用字符实体。