如何让xdmp:tidy()整理HTML5?

时间:2011-09-02 18:40:17

标签: tidy marklogic

使用属于HTML5的新doctype和元素,如何让xdmp:tidy()识别HTML5中的那些?

如果我有一个包含以下内容的html页面:

<!DOCTYPE html>
<html>
    <header>blah</header>
    <section>blah</section>

然后尝试以下方法: xdmp:tidy(xdmp:document-get("home.html"))

我收到的错误如下:

<section> is not recognized! discarding unexpected <section>
<header> is not recognized! discarding unexpected <header>

我可以向xdmp:tidy()发送一些选项让它来处理吗?

2 个答案:

答案 0 :(得分:1)

尝试使用指定新HTML5标记的 new-blocklevel-tags 选项。您可以通过用逗号或空格分隔多个元素来包含它们。您应该获得没有错误的预期输出,但仍会有警告。

在cq中尝试:

xdmp:tidy(xdmp:document-get("home.html"), <options xmlns="xdmp:tidy"><new-blocklevel-tags>header section</new-blocklevel-tags></options>)

单击here以获取有关添加各种标记(块级别,内联,空白)的良好参考,这些标记应作为xdmp:tidy中的选项。相同的信息是here,但它有点难以实现,有很多选择!

答案 1 :(得分:1)

本讨论的其余部分移至http://markmail.org/thread/emwua43mg63wxbno

的marklogic邮件列表

这确实会产生警告,但似乎仍然有效:

xquery版本“1.0-ml”;

let $htmlstring :=
'<html>
    <header>blah</header>
    <section>blah</section>
<p>hello</p>
</html>'
return
xdmp:tidy($htmlstring,
<options xmlns="xdmp:tidy">
  <new-inline-tags>header section</new-inline-tags>
  <new-blocklevel-tags>header section</new-blocklevel-tags>
</options>)