方案
我需要编写验证函数来验证XML标记名称(或属性名称)。
例如:
"div"
有效"d<iv"
无效"d\iv"
无效如果一个字符串无效,我应该转义它使它无效,并用一些任意字符替换它们(或删除它)。
例如:
"d<iv"
无效 - &gt;我将其替换为"div"
。这些功能将被大量调用 - 所以我需要考虑代码有效性。
我的问题
谢谢!
答案 0 :(得分:3)
规则在xml规范中定义(查看name定义)
如果速度很重要,那就不要使用正则表达式。做得更像这样:
public static String correctName(String name) {
StringBuilder nameBuilder = new StringBuilder();
for (char nameChar:name.charArray())
if (isValidXml(nameChar)) // some magic left to do ;)
nameBuilder.append(nameChar);
return nameBuilder.toString();
}
注意 - 上面的代码是一个简单的指南,它没有涵盖一点点烦恼,即xml名称的第一个字符具有不同的值范围...如果要纠正非法标记,例如$%&div
然后它有点复杂(需要更多魔法)