2
私はJSoupを使用して、HTML文書の<base/>
要素のhref属性を動的に設定しています。これは、変更されたHTMLから閉じる</base>
タグが省略されていることを除いて、期待通りに機能します。JSoupが有効なXHTMLを生成しない
JSOUPに有効なXHTMLを返す方法はありますか?
入力:
<html><head><base href="xyz"/></head><body></body></html>
出力:
<html>
<head>
<base href="https://myhost:8080/myapp/"> <-- missing closing tag
</head>
<body></body>
</html>
コード:エスケープモードに(またはその代わりに)加えて
protected String modifyHtml(HttpServletRequest request, String html)
{
Document document = Jsoup.parse(html);
document.outputSettings().escapeMode(EscapeMode.xhtml);
Elements baseElements = document.select("base");
if (!baseElements.isEmpty())
{
Element base = baseElements.get(0);
base.attr("href", getBaseUrl(request));
}
return document.html();
}
ありがとうございます。エスケープモードの修正を設定する代わりに、それを使用します。 –