在读取XML元素时获取异常

时间:2015-10-13 14:00:33

标签: java xml saxparser

我可以使用以下代码成功加载基于XML的属性文件:

    Properties props = new Properties();
    InputStream is = SampleConfig.class.getResourceAsStream("/test.properties");
    System.out.println(is);
    props.loadFromXML(is);
    String appId = props.getProperty("favoriteSeason");
    System.out.println(appId);

我的物业档案代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="favoriteSeason">test</entry>
<entry key="favoriteFruit">test1</entry>
<entry key="favoriteDay">test2</entry>
</properties>

但是,当我运行这个时,我得到以下异常:

  

引起:org.xml.sax.SAXParseException:元素类型“properties”的内容必须匹配“(comment?,entry *)”。       at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)       在org.apache.xerces.util.ErrorHandlerWrapper.error(未知来源)       在org.apache.xerces.impl.XMLErrorReporter.reportError(未知来源)       在org.apache.xerces.impl.XMLErrorReporter.reportError(未知来源)       at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(未知来源)       at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(未知来源)       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDispatcher.dispatch(Unknown Source)       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)       在org.apache.xerces.parsers.XML11Configuration.parse(未知来源)       在org.apache.xerces.parsers.XML11Configuration.parse(未知来源)       在org.apache.xerces.parsers.XMLParser.parse(未知来源)       在org.apache.xerces.parsers.DOMParser.parse(未知来源)       在org.apache.xerces.jaxp.DocumentBuilderImpl.parse(未知来源)       at java.util.XMLUtils.getLoadingDoc(XMLUtils.java:113)       在java.util.XMLUtils.load(XMLUtils.java:85)

1 个答案:

答案 0 :(得分:0)

您正在尝试使用loadFromXML()方法从.properties文件加载。我认为这是问题,因为stacktrace显示它没有获得注释条目类型所需的格式。