1

可能重复:
使 DocumentBuilder.parse 忽略 DTD 引用

这是我的示例 XML

<?xml version="1.0" standalone="no"?>
<!DOCTYPE factory-requirements SYSTEM "factory.7.0.dtd">
<data name="product">
  <product name="container">
    <one>20 feet</one>
    <two>50 feet</two>
  </product>
</data>

当我尝试将此文件传递到我的文档中时,我收到一个错误。

java.io.FileNotFoundException: C:\Documents and Settings\johnB\workspace\project\factory.7.0.dtd (The system cannot find the file specified)

似乎它也在寻找我没有的 DTD。我只需要将这个文件解析为 XML 并获取产品。我不会根据 DTD 验证这个 XML,因为我没有 DTD,而且我们只能从我们的供应商那里得到这个 XML。

这是我的代码:

File fstream = new File("C:/Documents and Settings/johnB/workspace/project/factory_product.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fstream);
doc.getDocumentElement().normalize();

我该怎么做才能<!DOCTYPE factory-requirements SYSTEM "factory.7.0.dtd">在解析时忽略它?

4

0 回答 0