快捷导航

Java解析xml文件时会抛出“The encoding declaration is required in

org.jdom2.input.JDOMParseException: Error on line 1: The encoding declaration is required in the text declaration.        at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:232)        at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:253)        at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1091)        at com.imooc.jdomtest.JDOMTest.main(JDOMTest.java:26)Caused by: org.xml.sax.SAXParseException: The encoding declaration is required in the text declaration.        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)        at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanXMLDeclOrTextDecl(XMLScanner.java:515)        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl(XMLDocumentFragmentScannerImpl.java:951)        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$XMLDeclDriver.next(XMLDocumentScannerImpl.java:815)        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:452)        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)        at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)        ... 3 more

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

packagecom.imooc.jdomtest;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.util.List;importorg.jdom2.Attribute;importorg.jdom2.Document;importorg.jdom2.Element;importorg.jdom2.JDOMException;importorg.jdom2.input.SAXBuilder;importcom.imooc.entity.Book;publicclassJDOMTest{        /**        *@paramargs        */        publicstaticvoidmain(String[]args){                //SAXBuildersaxBuilder=newSAXBuilder();//创建一个输入流InputStreamin;        try{                in=newFileInputStream("src/res/books.xml");                InputStreamReaderisr=newInputStreamReader(in,"UTF-8");                Documentdocument=saxBuilder.build(isr);ElementrootElement=document.getRootElement();ListbookList=rootElement.getChildren();//进行解析for(Elementbook:bookList){        BookbookEntity=newBook();        System.out.println("====开始解析第"+(bookList.indexOf(book)+1)+"本书===");        ListattrList=book.getAttributes();        for(Attributeattr:attrList){                StringattrName=attr.getName();                StringattrValue=attr.getValue();                System.out.println("属性名:"+attrName+"----属性值"+attrValue);                if(attrName.equals("id")){                        bookEntity.setId(attrValue);                }        }        ListbookChilds=book.getChildren();        for(Elementchild:bookChilds){                System.out.println("节点名"+child.getName()+"-----节点值"+child.getValue());        }        System.out.println("====结束解析第"+(bookList.indexOf(book)+1)+"本书===");        }        }catch(FileNotFoundExceptione){                //TODOAuto-generatedcatchblock                e.printStackTrace();        }catch(JDOMExceptione){                //TODOAuto-generatedcatchblock                e.printStackTrace();        }catch(IOExceptione){                //TODOAuto-generatedcatchblock                e.printStackTrace();        }        }}
回复

使用道具 举报

代码贴一下啊
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP