JAVA开发问题之org.xml.sax.SAXParseException

问题描述

在调用Properties.loadFromXML时报错

org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 13; 文档根元素 "properties" 必须匹配 DOCTYPE 根 "null"。

示例代码

package com.wywtime.toolbox;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.Properties;
public class PropertiesTest {
@Test
public void testLoadingXml() throws IOException {
Properties properties = new Properties();
properties.loadFromXML(this.getClass().getClassLoader().getResourceAsStream("test.xml"));
System.out.println(properties.getProperty("name"));
}
}

解决思路

这个问题解决思路需要深入loadFromXML,这个方法有相关注释

Loads all of the properties represented by the XML document on the specified input stream into this properties table.
The XML document must have the following DOCTYPE declaration:

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

所以在文档上添加相关DOCTYPE的声明即可

示例文档test.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="name">bsmn</entry>
</properties>

posted on   白首码农  阅读(1307)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示