2014-08-28 2 views
2

Я использовал это выражение для загрузки HTML документа:xdmp: документ нагрузка бросает XDMP-DOCDUPATTR для некорректного HTML документа, даже с ремонтом = полным

xdmp:document-load("http://example.com/index.html", 
    <options xmlns="xdmp:document-load" xmlns:http="xdmp:http"> 
    <uri>/documents/content.xml</uri> 
    <repair>full</repair> 
    <format>xml</format> 
</options> 

repairfull вариант хорошо работает с незакрытыми тегами. Но один из тегов имеет два атрибута с тем же именем, и это вызывает ошибку XDMP-DOCDUPATTR.

Есть ли способ избежать этой ошибки?

ответ

4

Вы можете попытаться получить этот документ как текст, а затем применять аккуратные - есть пример в конце:

http://docs.marklogic.com/xdmp:tidy

Надеясь, что помогает

+0

http://markmail.org/message/effny6kxqmgop7zf также может быть полезен. В нем обсуждается, как структурировать такие вещи, чтобы вы только извлекли документ один раз, а затем попробуйте выполнить ряд этапов обработки ответа. – mblakele

1

Вы можете также загружать HTML документы как плоские текст: <format>text</format> вместо <format>xml</format>. Документ будет представлять собой единый текстовый узел. Все HTML будут сохранены, но XML-структуры не будет, поэтому XPath не будет полезен.

Смежные вопросы