Java文档createElement错误

时间:2014-01-28 08:41:27

标签: java xml document

我设法在我的程序中根除了这个错误的原因:

INVALID_CHARACTER_ERR:指定了无效或非法的XML字符。

我做了一个测试应用程序,以确保原因是正确的。

测试代码:

    String x = "2TEST";  // <--------- when there is no leading number
                                 //          app executes normally

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder;
    try {
        builder = factory.newDocumentBuilder();
        Document doc = builder.newDocument();

        doc.createElement(x);
    } catch (ParserConfigurationException e) {
        e.printStackTrace();

当我删除2TEST中的前导号码时,它工作正常,某些条目中需要前导号码并且无法消除,在这种情况下是否有任何解决方法?

1 个答案:

答案 0 :(得分:1)

XML标记名称不能以数字开头。来自spec

The first character of a Name must be a NameStartChar

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]

因此,在将其用作标记名称中的第一个字符之前,需要以某种方式手动转义字符。例如,如果没有以它开头的普通标记,则可以使用下划线字符。