XSL:
<?xml version='1.0' encoding='utf-8' ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:htm="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:template match="/">
<xsl:variable name="source" select="document('test.html')"/>
</xsl:template>
</xsl:stylesheet>
测试.html:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
Bla-Bla-bla
</body>
</html>
当 test.html 包含 DOCTYPE 声明时,XSL 转换大约需要 2 分钟。当我删除 test.html 中的 DOCTYPE 声明时,XSL 转换大约需要 100 毫秒。xalan-j 中是否有办法通过 XSL document() 函数禁用 DTD 验证以进行 XML 的内部加载。
提前致谢!