Для тех из вас, кто использует Xalan 2.7.0 (на Java), у меня была такая же проблема. Я принял файл org / apache / xml / serializer / ToStream.java в исходном исходном коде, чтобы обойти эту проблему. Если вы указываете в качестве outputProperty:
private static Properties XHTML() {
Properties p = new Properties();
p.setProperty(OutputKeys.METHOD, "xhtml");
p.setProperty(OutputKeys.DOCTYPE_PUBLIC,
"-//W3C//DTD XHTML 1.0 Strict//EN");
p.setProperty(OutputKeys.DOCTYPE_SYSTEM,
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd");
p.setProperty(OutputKeys.ENCODING, "UTF-8");
p.setProperty("{http://xml.apache.org/xalan}indent-amount", "4");
p.setProperty(OutputKeys.INDENT, "yes");
p.setProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
p.setProperty("{http://example.com}selfclosing","no");
return p;
}
Обратите внимание на последнюю строку на selfclosing
. Это свойство, на которое отвечают в этой обновленной версии ToStream.java, и будет препятствовать тегам <div />
и <script />
и выводить теги <div></div>
и <script></script>
. Он также включает в себя исключения из них, а именно те, которые указаны в стандарте HTML, которые могут быть самозакрывающимися (т. Е. «Area», «base», «basefont», «br», «col», «frame», «hr»). "," img "," input "," link "," meta "," param "). По крайней мере, у меня это сработало, и теперь веб-страницы прекрасно отображаются в IE.
Новый файл ToStream.java можно найти по адресу http://bvandelft.ruhosting.nl/ToStream.java, и предварительно скомпилированная версия serializer.jar (работа с 2.7) также доступна по тому же URL-адресу, но serializer.jar (в котором скомпилированная версия ToStream включена) не разрешено публиковать более 1 URL: -p