我正在重构一个 Java EE 项目以使用 MarkLogic,并希望利用 MarkLogic 的内置 HTML Tidy 功能。是否可以使用 MarkLogic Java API 中的 HTML Tidy?还是我需要使用第三方 API 来让我直接运行 XQuery 命令?
或者这是一个傻瓜的差事,我应该在我的代码中使用 HTML Tidy?
请参阅com.marklogic.client.example.cookbook.DocumentWriteTransform
随 Java API 分发的示例,该示例server-side
在文档写入时使用 XQuery 转换来调用xdmp:tidy()
.
Erik 引用的示例安装了一个 XQuery 转换。它的名字是 html2xthml.xqy——它被打包在发行版的某个地方。该示例有一种安装转换的方法,然后是如何调用它的示例。调用部分在第 126 行。
writeMgr.write(docId, writeHandle, transform);
就在上面,您将看到如何创建和配置转换。
这个想法是,您可以使用 REST(通过 Java API)在 /v1/transforms/html2xhtml 安装转换,然后在文档 PUT(使用此 java 写入方法)期间以转换名称作为参数调用它。
因此,您要查找的参考是 XQuery 转换,而不是 Java 源文件。
我会倾向于在 Java 层中保持整洁,只要您打算将 Java 保留在图片中。在 JVM 中运行 tidy 会给你更多的控制:你可以安装任何你喜欢的 jtidy 版本,甚至可以自己打补丁。此外,tidy 可能会占用大量 CPU,因此在 JVM 层中运行它可以防止它与数据库查询竞争。
当然,你可能有其他强烈的动机在 MarkLogic 中运行整洁。例如,您可能计划允许直接与您的 MarkLogic 代码集成 REST。