【发布时间】:2014-02-21 17:12:58
【问题描述】:
我有一个通常格式不正确的任意 XHTML 文档,因为可以这样制作网站并且浏览器会显示它。如何支持格式不正确的 XHTML 代码的 XSLT 翻译?有什么办法可以避免那些成型不好的部分吗?
我有这段 Java 代码,但正如我所说,它不支持格式不正确的 XHTML:
try {
TransformerFactory tFactory=TransformerFactory.newInstance();
Source xslDoc=new StreamSource("path1");
Source xmlDoc=new StreamSource("path2");
String outputFileName="path3";
OutputStream htmlFile=new FileOutputStream(outputFileName);
Transformer trasform=tFactory.newTransformer(xslDoc);
trasform.transform(xmlDoc, new StreamResult(htmlFile));
}
catch (Exception e) {...}
【问题讨论】:
-
您可以尝试使用 JTidy 修复格式不正确的 XHTML。
-
难道没有办法用 Transformer 支持“格式不正确的 XHTML 翻译”吗?这与“我的”XHTML 无关——我可以使我的 XHTML 格式正确,但由于我正在解析站点,所以我不能期望这些 XHTML 总是格式正确。另外,我不知道这个 JTidy 将如何进行与浏览器相同的“整理”,并且对性能而言不会太多。
-
本地 Java XML 解析器要求 XML 格式正确,而 XSLT 解析器假定源是格式正确的 XML。如果格式不正确,您可以使用 HTML 解析器。