使用属于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()
发送一些选项让它来处理吗?
答案 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>)