【发布时间】:2016-03-07 14:22:28
【问题描述】:
trnsformer.transform(DomSource, streamResult);
DomSource 中的输入包含许多 <br> 标签,但我得到的是 &gt 和 &lt 而不是 < 和 > <br> 返回为 &lt br &gt
我知道&lt &gt 等价于<>。如何使转换器类更改编码并返回<br>?
XML 创建者
public class CreatXML
{
public static void main(String[] args){
try {
File article = new File("article.txt");
Scanner scan = new Scanner (article);
StringBuilder str = new StringBuilder();
while (scan.hasNext())
{
str.append(scan.nextLine());
str.append("<br>");
}
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element body = doc.createElement("div");
doc.appendChild(body);
Attr classAttr = doc.createAttribute("class");
classAttr.setValue("code");
body.setAttributeNode(classAttr);
Element p = doc.createElement("p");
p.appendChild(doc.createTextNode(str.toString()));
body.appendChild(p);
TransformerFactory transFatory = TransformerFactory.newInstance();
Transformer transformer = transFatory.newTransformer();
DOMSource dom = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
transformer.transform(dom, result);
System.out.println(writer.toString());
}catch (Exception e){e.printStackTrace();}
}
}
输入样本
<br>这是一个输入样本<br>
输出
<?xml [stuff] ><div><p>&lt;br&gt;这是一个输入样本&lt;br&gt;&lt;br&gt;</p></div>
【问题讨论】:
-
我在使用 Transformer 时没有看到这种行为。请编辑您的问题并提供说明您的问题的short but complete program,以及示例输入和 XSLT,以便其他人可以观察您的问题。
-
@VGR 感谢回复。问题已编辑。
标签: java xml transformer