gpt4 book ai didi

java - 检查字符串是否是 XML 文档的有效标记/属性名称

转载 作者:行者123 更新时间:2023-12-04 06:15:45 24 4
gpt4 key购买 nike

场景

我需要编写一个验证函数来验证 XML 标记名称(或属性名称)。

例如。:

  • "div"有效
  • "d<iv"无效
  • "d\iv"无效

  • 如果字符串无效,我应该转义使其无效,并用一些任意字符替换它们(或删除它)。

    例如。:
  • "d<iv"无效 -> 我用 "div" 替换它.

  • 这些函数将被大量调用 - 所以我需要考虑代码 有效性 .

    我的问题
  • 描述有效 XML 标记/属性名称的规则是什么?考虑使用与 java 变量名称相同的规则描述有效的 XML 标记/属性是否安全?还是这些规则过于严格?
  • 我应该使用 java regex 包还是应该编写自己的专用方法? (正如我所说的,速度很重要)。
  • 你有什么建议吗 ?

  • 谢谢!

    最佳答案

    规则在 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 这样的非法标签然后它有点复杂(需要更多的魔法)

    关于java - 检查字符串是否是 XML 文档的有效标记/属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272253/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com