有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

节点名称上的java转义XML特殊字符

我正在使用DOM解析器从映射创建xml。在我的情况下,节点可能有空格或&;(特殊字符)。但是我需要通过转义这些字符来创建节点名。我有任何方法可以实现这一点,也有任何解决方法可以实现这一点


共 (1) 个答案

  1. # 1 楼答案

    否。XML节点名称必须遵守规范的规则,特别是Name rule

    [4]     NameStartChar      ::=      ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
    [4a]    NameChar       ::=      NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
    [5]     Name       ::=      NameStartChar (NameChar)*
    

    这意味着在节点名称中空格和&都无效

    解决方法是使用具有名称属性的通用节点:

    <item name="name with special chars: &amp;">