【问题标题】:Parsing a DTD in Java在 Java 中解析 DTD
【发布时间】:2015-09-07 22:15:04
【问题描述】:

在为DTD 加载语法时,出现以下错误:

“未知协议 c”。

谁能帮忙解决这个错误?

XMLInputSource is = new XMLInputSource(null, dtdPath, null);
        Hashtable temp = new Hashtable();

        SymbolTable st = new SymbolTable();
        DTDHandler handler = new DTDHandler();
        XMLDTDLoader loader = new XMLDTDLoader(st);
        loader.setDTDHandler(handler);
         [![enter image description here][1]][1]
        try {

            Grammar grammar = loader.loadGrammar(is);

【问题讨论】:

  • 您能否发布您的错误跟踪,以便我了解您在尝试什么?
  • XML 和 DTD 也会有所帮助。
  • 我正在尝试从 java 文件中的 dtd 中检索元素..但我无法加载它
  • 请张贴所有错误跟踪!我认为是 java.net.MalformedURLException: unknown protocol: c 对以 c 开头的路径来说是一个不好的转义。 XMLInputSource 中的 Mabey is = new XMLInputSource(null, dtdPath, null); dtdPath 应该使用 // 而不是 /

标签: java dtd


【解决方案1】:

协议是 URI/URL 第一部分的技术术语,如“http:...”和“jdbc:...”中的协议分别为 httpjdbc

现在,由于您的错误,我们收到了c:。这听起来好像您提供了一个 文件路径,其中需要一个 URL:file://c:/.../...

类 File 有一个 toURI。

对于 DTD,也有 PUBLIC 和 SYSTEM URI。

【讨论】:

  • 我添加了完整堆栈跟踪的图像
猜你喜欢
  • 2012-03-24
  • 2017-08-19
  • 2014-12-11
  • 1970-01-01
  • 2023-03-13
  • 2016-04-23
  • 1970-01-01
  • 2018-12-05
  • 2014-09-28
相关资源
最近更新 更多