是否有任何帮助器将字符串转换/转义为有效的XML名称?
示例,我有字符串max(OfAll)
,需要生成一些XML,例如
<max(OfAll)>SomeText</<max(OfAll)>
这显然不是一个有效的名称,是否有一些辅助方法可以将字符串转换为有效的xml名称?
(为了比较,.NET有一些上面的xml片段的方法:
<max_x028_OfAll_x028_>SomeText</<max_x028_OfAll_x028_>)
答案 0 :(得分:2)
.NET示例中的编码类似于ISO9075中定义的编码。我认为jdk中没有内置实现,但是这种编码也被alfresco或jackrabbit等内容存储库用于xml导入/导出和查询apis。快速搜索发现了这两个实现,两者都在开源许可下提供:
答案 1 :(得分:0)
在apache commons-lang项目中,可能在其他情况下使用的一个类是StringEscapeUtils。它可以转义用于XML文档的文本,我不知道有什么可以逃避XML元素名称。
你能不能生成更具可读性的东西,比如
<aggregation type="max(OfAll)">SomeText</aggregation>
答案 2 :(得分:0)
我不知道有任何帮助方法,但这里的规则http://www.w3.org/TR/REC-xml/#NT-Name非常简单,因此应该很容易实现。
答案 3 :(得分:0)
应该很清楚,正常的XML转义(用字符实体替换不适当的字符)不会产生有效的XML标识符。
为了记录,你正在做的事情经常被称为“名称修改”。