2011-09-02 24 views
5

W nowym typie dokumentu i elementach wchodzących w skład HTML5, w jaki sposób można uzyskać xdmp:tidy() rozpoznawanie znaków HTML5?Jak zdobyć xdmp: tidy() aby uporządkować HTML5?

Jeśli mam stronę HTML, który zawiera coś takiego:

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

a następnie spróbuj coś takiego: xdmp:tidy(xdmp:document-get("home.html"))

pojawiają się błędy takie jak:

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

Czy istnieją pewne opcje Mogę wysłać do xdmp:tidy(), aby go obsłużyć?

Odpowiedz

1

Spróbuj użyć opcji new-blocklevel-tags, która określa nowe znaczniki HTML5. Możesz dołączyć wiele elementów, oddzielając je przecinkiem lub spacją. Powinieneś uzyskać oczekiwany wynik bez błędów, ale nadal będą wyświetlane ostrzeżenia.

Spróbuj tego w cq:

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

Kliknij here za dobre referencje na temat dodawania różnych znaczników (poziom bloku, inline, pusty), który powinien działać jako opcje xdmp: schludny. Ta sama informacja to here, ale nieco trudniej jest ją uzyskać, jest tak wiele opcji!

+2

Próbowałem swoje sugestie, ale teraz mam: ' <sekcja> nie jest zatwierdzona przez W3C ' < Nagłówek > nie został zatwierdzony przez W3C – RyanS

1

Reszta tej dyskusji podszedł do marklogic listy w http://markmail.org/thread/emwua43mg63wxbno


To wywołuje ostrzeżenia, ale mimo wszystko wydaje się działać:

wersja 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>) 
+0

Z http://markmail.org/message/jze7rhnunvvk7sqf trzymając szczegóły. –