我正在尝试使用 DOM 解析器和以下代码来解析 Java 中的 XML 文件:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
[...]
File file = new File("some/path");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);
最后一行(调用 .parse() 函数时)给出错误:
java.io.IOException: Server returned HTTP response code: 403 for URL: http://testng.org/testng-1.0.dtd
如何修复此错误?
最佳答案
它正在尝试加载 testng-1.0.dtd
,即 XML 文档的 DTD。
从任何可以获得的地方自行下载,并配置 DocumentBuilder
通过向 DocumentBuilder.setEntityResolver()
提供 EntityResolver
来查找它。 .
或者修复您的 HTTP 代理。文档本身不受授权保护,这就是 403 的含义。
关于DOMParser 的 Java IO 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50614655/