BaseX has integration for TagSoup,它将HTML转换为格式良好的XHTML。
BaseX的大部分发行版已经捆绑了TagSoup,如果您从Linux存储库安装BaseX,您可能需要手动添加它(例如,在Debian和Ubuntu上,它被称为libtagsoup-java
)。有关不同安装选项的更多详细信息,请参阅上面链接的文档。
之后,无论是使用命令
SET PARSER html
或XQuery的序幕使用
declare option db:parser "html";
之后,简单地获取所需的文档设置TagSoup解析器为默认值。一个例子为亚马逊网站,你链接:
declare option db:parser "html";
doc('http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=camera')
这应该工作,但是没有。我正在查询主要开发人员,因为它没有(似乎是因为一些HTTP重定向),并会在问题解决后更新答案(或者我明白为什么这样做不起作用)。解决方法直到然后就是文档文本提取和分析它作为HTML:
html:parse(fetch:text('http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=camera')
截至收盘选民:我看不出这个问题,搜索产品的建议,也不需要要求所有的代码重现该问题。 –