当前位置: 首页 > 面试题库 >

在XOM中解析XHTML文档时DTD下载错误

松献
2023-03-14
问题内容

我试图解析具有声明为使用过渡性dtd的doctype的HTML文档,如下所示:

<!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,它告诉我该URL有效。我不想删除文档类型声明。有没有一种方法告诉构建器不要下载dtd或为其提供备用dtd?


问题答案:

快速浏览Builder的javadoc
,我想您可以通过采用XMLReader的构造函数提供EntityResolver。我会尽量避免让解析器从Internet下载文件。



 类似资料:
  • 使用perl中的RDF::RDFa::解析器模块解析网站中的rdf数据。在网站上与!DOCTYPE超文本标记语言PUBLIC"-//W3C//DTD超文本标记语言4.01过渡//EN" 测试网站-

  • 我使用SOLR7完全解压缩windows文档文件。我有这个错误: 但是使用Solr5.5我没有错误,知道吗?

  • 在进行了一些程序内操作之后,我最终得到了一个包含我要执行的变更日志的xom文档对象。根据我的理解,我必须在ChangeLogParser的帮助下将其转换为liquibase XML格式ParsedNode。但该接口在parse方法中假设一个外部表示形式。使用ResourceAccessor将Document对象注入解析器也是不可能的,因为方法getResourcesAsStream返回一组Inpu

  • 本文向大家介绍HTML和XHTML文档类型,包括了HTML和XHTML文档类型的使用技巧和注意事项,需要的朋友参考一下 为了验证HTML或XHTML的任何页面,您将需要一个doctype。这是一串文本,位于文档顶部,可告诉浏览器确切的标记标准已用于创建页面。 XHTML严格 当您不使用任何框架集或折旧标签时,此doctype将在XHTML文档中使用。 <!DOCTYPE html PUBLIC "

  • 问题内容: SVG元素包含一个数据属性()。有时有必要仅从SVG文件加载,解析和提取路径信息。 题 如何从SVG文件加载,解析和提取SVG路径信息? 问题答案: 总览 使用ApacheBatik加载和解析SVG文件。该解决方案在将SVG文件转换为MetaPost的初期阶段显示了Java代码。这应该为如何使用Java从SVG文件中加载,解析和提取内容提供一个总体思路。 图书馆 您将需要以下库: 加载

  • 问题内容: 我有以下问题: 我有一个XML文件(大约1GB),并且必须上下迭代(即不连续;一个接一个),以便获取所需的数据并对其进行一些操作。最初,我使用了DOM Java包,但是很显然,在解析XML文件时,JVM达到了其最大堆空间并停止了运行。 为了解决这个问题,我想到的解决方案之一是找到另一个解析器,该解析器迭代XML中的每个元素,然后将其内容存储在硬盘上的临时SQLite数据库中。因此,通过