我有以下代码片段来获取存储在数据库表中的 XML 数据的输出
ServletOutputStream os = response.getOutputStream();
String contentDisposition = "attachment;filename=Test.HTML";
response.setHeader("Content-Disposition",contentDisposition);
response.setContentType("text/html");
XMLNode xmlNode = (XMLNode)am.invokeMethod("getDataXML");
ByteArrayOutputStream outputStream =
new ByteArrayOutputStream();
xmlNode.print(outputStream);
ByteArrayInputStream inputStream =
new ByteArrayInputStream(outputStream.toByteArray());
ByteArrayOutputStream pdfFile = new ByteArrayOutputStream();
TemplateHelper.processTemplate(((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getAppsContext(),
"INV",
"MyTemplate",
((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getLanguage(),
((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getCountry(),
inputStream,
TemplateHelper.OUTPUT_TYPE_HTML,
null, pdfFile);
byte[] b = pdfFile.toByteArray();
response.setContentLength(b.length);
os.write(b, 0, b.length);
os.flush();
os.close();
pdfFile.flush();
pdfFile.close();
public XMLNode getDataXML() {
OAViewObject vo = (OAViewObject)findViewObject("DataVO");
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
XMLNode xmlNode =
(XMLNode)vo.writeXML(4, XMLInterface.XML_OPT_ALL_ROWS);
return xmlNode;
}
我有 HTML 标签,它存储在表中
<STRONG>this</STRONG> is only a test.
然而上面的内容正在转换为
<STRONG>this</STRONG>is only a test.
当我执行代码时,如何保留原始 HTML 标签,或者如何在不使用任何第三方库的情况下将其转换回原始状态,因为我们在服务器中使用第三方库有限制。
看一下这个以获取更多信息
HTML 字符编码器将所有适用的字符转换为它们的字符
相应的 HTML 实体。某些角色有特殊的
在 HTML 中具有重要意义,应转换为正确的 HTML
实体以保留其含义。例如,这是不可能的
使用 HTML 语法中的
然后这可能会帮助你:
使用 Apache CommonsStringEscapeUtils.unescapeHtml4()
为了这:
将包含实体的字符串取消转义为包含实体的字符串
与转义对应的实际 Unicode 字符。支持
HTML 4.0 实体。
Edit
看来java本身就有这个方法
URLDecoder.decode(String stringToDecode)
和这个
URLDecoder.decode(String stringToDecode, String charset);
希望这对你有用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)