dom4j:在输出xml中保留html标签

时间:2013-06-26 08:26:52

标签: java html dom4j

我正在尝试在我的JAVA代码中创建XML文档。

此XML中的一个标记包含HTML粗体标记以及其他文本作为其值。

我想确保在浏览器中呈现此XML时,会保留HTML标记。

截至目前,我在输出中看到了转义字符。

Document suggesterDoc = DocumentHelper.createDocument(); 
Element suggesterDocRoot =   DocumentHelper.createElement("Response"); 
String modifiedSearchQuery = "<b>" + "test" + "</b>"; 
Element title = DocumentHelper.createElement("title"); 
title.setText(modifiedSearchQuery); 

1 个答案:

答案 0 :(得分:0)

您正在创建一个恰好包含需要转义的字符的文本节点(&lt;)。 <b>代码也必须是Element

Document suggesterDoc = DocumentHelper.createDocument(); 
Element suggesterDocRoot =   DocumentHelper.createElement("Response"); 
Element title = DocumentHelper.createElement("title"); 
Element bold = DocumentHelpr.createElement("b");
b.setText("test");
title.add(b); 

这样可行,但以这种方式创建HTML会变得有点乏味。

更新

可能有用的技巧是使用String操作创建HTML文本,将其解析为文档并将元素传输到目标文档。像这样:

Document doc = new DefaultDocument();
doc.add(new DefaultElement("body"));

Document fragment = DocumentHelper
        .parseText("<p>Some inline text with <b>highlighted</b> content</p>");
doc.getRootElement().add(fragment.getRootElement());
System.out.println(doc.asXML());

打印:

<?xml version="1.0" encoding="UTF-8"?>
<body><p>Some inline text with <b>highlighted</b> content</p></body>