繁体   English   中英

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

[英]How to generate valid XML element name from String value in Java

我正在尝试从字符串值生成有效的 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()解决,但我想知道这是否可以自动完成。

这是一种可能的算法。

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

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

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

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

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

解析字符串并替换特殊字符。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM