INVALID_CHARACTER_ERR JAVA

时间:2015-02-12 11:02:49

标签: java xml dom

早上好, 谁能帮助我? 线程“main”中的异常org.w3c.dom.DOMException:INVALID_CHARACTER_ERR:UncaractèreXMLnon valide ou non admis estindiqué。     at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElement(CoreDocumentImpl.java:622)     在TT.ReadXMLFile.main(ReadXMLFile.java:62) Java结果:1

代码来源:

 public class ReadXMLFile {
    public static void main(final String[] args) {
        /*
     * Etape 1 : récupération d'une instance de la classe "DocumentBuilderFactory"
     */
    final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

    try {
        /*
         * Etape 2 : création d'un parseur
         */
        final DocumentBuilder builder = factory.newDocumentBuilder();

        /*
         * Etape 3 : création d'un Document
         */
        final Document document= builder.newDocument();

        /*
         * Etape 4 : création de l'Element racine
         */
        final Element racine = document.createElement("repertoire");
        document.appendChild(racine);           



        /*
         * Etape 7 : récupération des numéros de téléphone
         */
        final Element telephones = document.createElement("telephones");
        for(int i=0;i<2;i++){
        final Element fixe = document.createElement(String.valueOf(i));
        fixe.appendChild(document.createTextNode("01 02 03 04 05"));



        telephones.appendChild(fixe);

            }   
              racine.appendChild(telephones);
        /*
         * Etape 8 : affichage
         */
        final TransformerFactory transformerFactory = TransformerFactory.newInstance();
        final Transformer transformer = transformerFactory.newTransformer();
        final DOMSource source = new DOMSource(document);

             StringWriter outWriter = new StringWriter();
        StreamResult result = new StreamResult(outWriter);
        transformer.transform(source, result);
                StringBuffer sb = outWriter.getBuffer(); 
                String finalstring = sb.toString();
                System.out.println(finalstring);
    }
    catch (final ParserConfigurationException e) {
        e.printStackTrace();
    }
    catch (TransformerConfigurationException e) {
        e.printStackTrace();
    }
    catch (TransformerException e) {
        e.printStackTrace();
    }           
    }
}

1 个答案:

答案 0 :(得分:1)

这就是它发生的地方:

for(int i=0;i<2;i++){
    final Element fixe = document.createElement(String.valueOf(i));

这会导致调用

document.createElement( "0" ); 

带参数“0”,它不是有效的标签名称。

我不能建议改进,因为我不知道你想要创建什么XML格式;三次<???>01 02 03 04 05</???>没有多大意义。