0

我正在使用 Sarissa 将一串 XML 转换为 DOM 文档对象。一切正常,除了 Sarissa 完全忽略了我的 DTD。没有注意到与 DTD 规则的偏差,也没有看到任何关于未找到 DTD 的消息。

我的 XML 开头是这样的:

<?xml version="1.0" standalone="no" ?>
<!DOCTYPE workspace SYSTEM "dtd/config.dtd">

我的 JavaScript 看起来像这样:

function toXML(str) {
    var responseDoc = (new DOMParser()).parseFromString(str, "text/xml");
    ...
}

如何让 Sarissa 使用 DTD?

4

1 回答 1

1

Sarissa 的源代码没有任何非常特殊的 DOMParser() 解析代码。它基本上包装了 IE、Safari 或 Firefox/Opera 原生实现,它们可能无法在您使用的浏览器中解析 DTD,因为可悲的是,外部 DTD 解析是 XML 的一个可选方面(即使对于实体也是如此),而且验证更不确定. Web 类型迫使人们使用服务器端替换(或者可能在验证方面仍可能被忽略的内部文档子集定义)。

于 2011-05-06T12:54:29.320 回答