读取 xml 包含 DOCTYPE SYSTEM“.dtd”错误的文件

Reading xml File with DOCTYPE SYSTEM ".dtd" error

我正在尝试使用此 header:

读取 XML 文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?>
<!DOCTYPE mdc SYSTEM "MeasDataCollection.dtd">

我在方法中为此文件创建了一个路径名:

String filePathName = appProperties.getProperty("xmlFilesLocation") + "/" +
 appProperties.getProperty("adaptorLA") + "/" + tempName; //tempName is the file's name, it is file.xml here 

我正在尝试 re-open 并在另一种方法中使用此类代码解析文件:

DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = documentBuilder.parse(file);

这是我的程序崩溃的地方,我得到一个错误,文件“MeasDataCollection.dtd”不存在。我没有明确地将此文件名分配给我要解析的路径,但它似乎以某种方式混淆了我的文件名。

我很难理解这个“文档类型...系统...”的含义以及它如何影响我的代码。

感谢所有帮助。

检查此问题的答案以禁用 DTD 读取:DTD download error while parsing XHTML document in XOM

一个DTD用来定义XML结构,也可以定义XML实体。如果是这种情况,如果您不阅读 DTD 可能会 XML 解析失败,您将不得不尝试。