1

我正在重构一个 Java EE 项目以使用 MarkLogic,并希望利用 MarkLogic 的内置 HTML Tidy 功能。是否可以使用 MarkLogic Java API 中的 HTML Tidy?还是我需要使用第三方 API 来让我直接运行 XQuery 命令?

或者这是一个傻瓜的差事,我应该在我的代码中使用 HTML Tidy?

4

3 回答 3

3

请参阅com.marklogic.client.example.cookbook.DocumentWriteTransform随 Java API 分发的示例,该示例server-side在文档写入时使用 XQuery 转换来调用xdmp:tidy().

于 2013-02-12T21:21:32.297 回答
2

Erik 引用的示例安装了一个 XQuery 转换。它的名字是 html2xthml.xqy——它被打包在发行版的某个地方。该示例有一种安装转换的方法,然后是如何调用它的示例。调用部分在第 126 行。

writeMgr.write(docId, writeHandle, transform);

就在上面,您将看到如何创建和配置转换。

这个想法是,您可以使用 REST(通过 Java API)在 /v1/transforms/html2xhtml 安装转换,然后在文档 PUT(使用此 java 写入方法)期间以转换名称作为参数调用它。

因此,您要查找的参考是 XQuery 转换,而不是 Java 源文件。

于 2013-02-12T22:45:11.103 回答
0

我会倾向于在 Java 层中保持整洁,只要您打算将 Java 保留在图片中。在 JVM 中运行 tidy 会给你更多的控制:你可以安装任何你喜欢的 jtidy 版本,甚至可以自己打补丁。此外,tidy 可能会占用大量 CPU,因此在 JVM 层中运行它可以防止它与数据库查询竞争。

当然,你可能有其他强烈的动机在 MarkLogic 中运行整洁。例如,您可能计划允许直接与您的 MarkLogic 代码集成 REST。

于 2013-02-13T03:50:50.230 回答