HTML代码正在转换

时间:2016-11-26 05:30:58

标签: java html xml oracle-ebs oracle-xml-publisher

我有以下代码片段来从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.

但是上面的内容正在转换为

 &lt;STRONG&gt;this&lt;/STRONG&gt;is only a test.

如何在执行代码时保留原始HTML标记,或者如何在不使用任何第三方库的情况下将其转换回原始HTML标记,因为我们限制在服务器中使用第三方库。

1 个答案:

答案 0 :(得分:1)

请查看此信息以获取更多信息

  

HTML字符编码器将所有适用的字符转换为它们   相应的HTML实体。某些角色有特殊之处   HTML中的重要性,应该转换为正确的HTML   实体保留其含义。例如,这是不可能的   使用&lt;因为它在HTML语法中用于创建和   关闭标签。它必须转换为相应的&lt; HTML实体   显示在HTML页面的内容中。 HTML实体名称是   区分大小写。

然后这可以帮到你:

使用Apache Commons StringEscapeUtils.unescapeHtml4()

  

将包含实体转义符的字符串转义为包含的字符串   与转义对应的实际Unicode字符。支持   HTML 4.0实体。

修改

似乎java本身就有这种方法

URLDecoder.decode(String stringToDecode)

和这个

URLDecoder.decode(String stringToDecode, String charset);

希望这对你有用