вопрос по JAXP
есть код на жабе
имеется документ вида
после парсинга средствами NekoHTML и дальнейшей сериализации DOM в поток через prettyPrint получаю на выходе XHTML:
вопросы:
1) почему для XHTML не сгенерировали DOCTYPE?
2) почему заэскейпилась <![CDATA[
3) кто и зачем переделал & в & внутри скрипта?
Чота я туплю.
public void prettyPrint(final Document document, final OutputStream target) {
try {
Transformer t = TransformerFactory.newInstance().newTransformer();
if (tidyConfig.TidyXhtmlOut || tidyConfig.TidyXmlOut) {
t.setOutputProperty(OutputKeys.METHOD, "xml");
t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,
"-//W3C//DTD XHTML 1.0 Strict//EN");
Element root = document.getDocumentElement();
root.setAttribute(XML_NAMESPACE_ATTRIBUTE,
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd");
} else {
t.setOutputProperty(OutputKeys.METHOD, "html");
t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,
"-//W3C//DTD HTML 4.01 Transitional//EN");
}
t.transform(new DOMSource(document), new StreamResult(target));
target.flush();
} catch (Exception e) {
throw new RuntimeException(e);
}
}имеется документ вида
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<p><a id="a1" name="a1"></a> Here we go</p>
<script type="text/javascript">
//<![CDATA[
var item = "&=";
alert(item);
//]]>
</script>
</body>
</html>после парсинга средствами NekoHTML и дальнейшей сериализации DOM в поток через prettyPrint получаю на выходе XHTML:
<?xml version="1.0" encoding="UTF-8"?><HTML xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<HEAD>
<TITLE />
</HEAD>
<BODY>
<P><A id="a1" /> Here we go</P>
<SCRIPT style=" list-style:text/javascript;">
//<![CDATA[
var item = "&=";
alert(item);
//]]>
</SCRIPT>
</BODY></HTML>вопросы:
1) почему для XHTML не сгенерировали DOCTYPE?
2) почему заэскейпилась <