我有一个使用 Jersey 在 GlassFish 中实现的 REST 服务。我的服务使用 JSON 输出工作,现在我也想提供一些人类可读的输出。 JSON 输出中缺少的最重要的事情是我希望将统计信息中的某些字段转换为可点击的链接,这将显示相关的统计信息(使用另一个 REST 调用)。
由于我希望将格式和内容分开,因此我不想直接生成 HTML。我认为使用 xml + xslt 可能是一种明智的方法。我可以使用 org.w3c.dom 生成 XML 文档,但我不知道如何将 xslt 附加到它。
这大概是我现在所做的:
@GET
@Path("history_id")
@Produces("application/xml")
public Document history(@QueryParam("id") String idText) throws ParserConfigurationException
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
Element el = doc.createElement(name);
el.setTextContent(value);
root.appendChild(el);
return doc;
我希望以下指令出现在生成的 XML 中:
<?xml-stylesheet type="text/xsl" href="history.xsl"?">
如何指定要附加到 XML 的 xslt?或者我的方法可能从根本上是错误的,而这通常是通过其他方式完成的?
最佳答案
该“指令”在 XML 世界中称为“处理指令”。您可以使用 DOM API 创建一个:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
doc.appendChild(doc.createProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"history.xsl\""));
然后,如果您将 XML 文档发送到支持客户端 XSLT 的浏览器/用户代理,它会将样式表应用到 XML。
关于java - 休息服务: how to produce human readable output using XML + XSLT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13680793/