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