我的旧数据库中的内容既不是有效的 HTML 也不是 XML。考虑到清理遗留问题很困难,我想在 MarkLogic 中使用 xdmp:tidy 进行整理。我目前正在使用 ML-8。
<sub>
<p>
<???†?>
</p>
</sub>
我以某种方式将此内容传递给整洁的功能:
declare variable $xml as node() :=
<content>
<![CDATA[<p><???†?></p>]]>
</content>;
xdmp:tidy(xdmp:quote($xml//text()),
<options xmlns="xdmp:tidy">
<assume-xml-procins>yes</assume-xml-procins>
<quiet>yes</quiet>
<tidy-mark>no</tidy-mark>
<enclose-text>yes</enclose-text>
<indent>yes</indent>
</options>)
结果它返回:
<p>
<? ?†?>
</p>
现在这个结果不是有效的 xml 格式(我通过 XML 验证器检查了它),因此当我尝试将此 XML 插入 MarkLogic 时,它会抛出一个错误,提示“MALFORMED BODY | 无效的处理指令名称。
我对 PI 进行了一些调查,但运气不佳。我本可以尝试在没有 PI 的情况下保存内容,但这也不是有效的 PI。