将XML转换为语法高亮的HTML的Java库

4

我有一个Java字符串包含XML内容。我使用Velocity生成一些HTML报告,这个XML需要被包含到其中一个HTML文件中。如果这个XML能够进行语法高亮和格式化处理那将非常好。是否有Java库可以完成这个任务呢?

3个回答

3

1
这个链接无法使用。然而,该库存在于中央Maven仓库中:http://search.maven.org/#artifactdetails%7Ccom.uwyn%7Cjhighlight%7C1.0%7Cjar - Michael
这已经过时了,但我正在寻找同样的东西,并在Github上找到了jhighlight:https://github.com/codelibs/jhighlight。 - Nicholas

2

使用Oliver Becker的XSLT和CSS

import javax.xml.transform.*;

TransformerFactory tf = TransformerFactory.newInstance();
InputStream xslt = getClass().getResourceAsStream("xmlverbatim.xsl"); // or FileInputStream
Transformer t = tf.newTransformer(new StreamSource(xslt));
t.setParameter("indent-elements", "yes");
ByteArrayOutputStream s = new ByteArrayOutputStream();
t.transform(new StreamSource(new ByteArrayInputStream(xml)), new StreamResult(s));
byte[] out = s.toByteArray();

这个回答链接的网站已经消失了,没有它,剩下的代码几乎没有什么用处了... - undefined

0

这个想法是让输出看起来像XML,但带有语法着色。 - Peter Hilton
XSLT可以通过将例如<span class="codeKeyWord">..</span>替换为类似<span class="codeKeyWord" style="color:green">..</span>的内容来实现。但这并不是一种非常干净的方法。 - Esko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接