Как заставить xdmp: tidy () привести в порядок HTML5? - PullRequest
5 голосов
/ 02 сентября 2011

С новым типом документа и элементами, которые являются частью HTML5, как вы получаете 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 ]

1 голос
/ 13 сентября 2011

Остальная часть этого обсуждения перенесена в список рассылки marklogic по адресу http://markmail.org/thread/emwua43mg63wxbno


. Это выдает предупреждения, но, тем не менее, работает:

xquery version "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>)
1 голос
/ 03 сентября 2011

Попробуйте использовать параметр new-blocklevel-tags , который задает новые теги HTML5. Вы можете включить несколько элементов, разделяя их запятой или пробелом. Вы должны получить ожидаемый результат без ошибок, но все равно будут предупреждения.

Попробуйте это в cq:

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

Нажмите здесь , чтобы получить хорошую справку о добавлении различных тегов (уровень блока, встроенный, пустой), которые должны работать как параметры в xdmp: tidy. Та же самая информация - здесь , но получить ее немного сложнее, вариантов так много!

...