java - 在 XOM 中解析 XHTML 文档时出现 DTD 下载错误

标签 java dtd xom

我正在尝试解析声明使用的文档类型的 HTML 文档 过渡性的dtd如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

当我对文档执行 Builder.build 时,出现以下异常:

  java.io.IOException: Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
       at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)
       at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
       at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
       at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
       at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
       at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
       at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
       at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
       at nu.xom.Builder.build(Builder.java:1127)
       at nu.xom.Builder.build(Builder.java:1019)

如果我删除文档类型声明,它就可以正常解析。我可以 从我的浏览器成功下载了 dtd,它告诉我 网址有效。我不想删除文档类型声明。是 有一种方法可以告诉构建者不要下载或提供 dtd 有备用的 dtd 吗?

最佳答案

这解决了问题:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setValidating(false);
            factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
            Document document = factory.newDocumentBuilder().parse(is);

关于java - 在 XOM 中解析 XHTML 文档时出现 DTD 下载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/998280/

相关文章:

java - map.size() 是否始终与 map.entrySet().size() 相同

java - 与 stanford corenlp 的依赖关系崩溃

python - 使用lxml库解析dtd文件(python)

Java XML 从上到下读取 XML 文件

java - 时间和内存高效的 Java XPath 解析器

java - 从 URL 加载 xml 时设置超时?

java - lock() 方法获取哪个对象上的锁?

java - 如何为所有类配置log4j fileappender?

validation - 我应该在 JSF 1.2/2.0/2.1 中使用什么 DTD 来验证我的配置 XML?

java - 如何在 XSL 函数 'document()' (xalan-j) 中禁用 DTD 验证