如何从Java中的String值生成有效的XML元素名称

时间:2018-02-06 16:00:29

标签: java xml

我试图从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()来解决,但我想知道这是否可以自动完成。

2 个答案:

答案 0 :(得分:3)

这是一种可能的算法。

  1. 将结果缓冲区初始化为“_”

  2. 对于输入中的每个(Java 16位)字符:

  3. (2a)如果字符是下划线以外的有效名称字符,请将其附加到缓冲区

    (2b)否则,将_HHHH附加到缓冲区,其中HHHH是十六进制的字符代码。

    此算法为每个输入字符串生成唯一名称,并且是可逆的,因此您可以从生成的名称重建输入字符串。

答案 1 :(得分:-2)

解析String并替换特殊字符。

对于元素数据,请使用字符实体。