Java WebHarvest中的Xquery错误
我用它来解析一些html。在WebHarvest的ide中,我在下面的函数中遇到了以下错误,我不明白是什么错了。我试图创建一个修剪字符串的函数 错误: 执行XQuery表达式时出错 (Xquery=[声明变量$xqsource 外部;让$result:= 规范化空间($xqsource)返回 $result]) Edit2:日志报告以下SAX错误: […]由以下原因引起: org.xml.sax.SAXParseException:内容 在序言中不允许使用 我不明白在这种情况下这意味着什么 函数的参数:sourceString,要修剪的字符串Java WebHarvest中的Xquery错误,java,screen-scraping,xquery,webharvest,Java,Screen Scraping,Xquery,Webharvest,我用它来解析一些html。在WebHarvest的ide中,我在下面的函数中遇到了以下错误,我不明白是什么错了。我试图创建一个修剪字符串的函数 错误: 执行XQuery表达式时出错 (Xquery=[声明变量$xqsource 外部;让$result:= 规范化空间($xqsource)返回 $result]) Edit2:日志报告以下SAX错误: […]由以下原因引起: org.xml.sax.SAXParseException:内容 在序言中不允许使用 我不明白在这种情况下这意味着什么 函数
<function name="trim">
<return>
<xquery>
<xq-param name="xqsource">
<var name="sourceString" />
</xq-param>
<xq-expression><![CDATA[
declare variable $xqsource external;
let $result := normalize-space($xqsource)
return
$result
]]>
</xq-expression>
</xquery>
</return>
</function>
编辑:sourceString是由字母数字字符、新行和空格组成的字符串,如
“等等,等等
"
xq参数的默认类型是
节点()
(cf)。因此,WebHarvest尝试将变量内容解析为XML(SAXParseException是一个XML解析错误,而不是特定的XQuery错误)
您应该在参数中添加字符串类型声明:
<xq-param name="xqsource" type="string">
<var name="sourceString" />
</xq-param>
这有帮助吗?我可以重现使用Saxon测试XQuery表达式时出现的错误。sourceString
值是多少?@Alejandro:你认为xquery代码正确吗?无论如何,传递的字符串都是包含新行、字母数字字符和空格的字符串!!我错过了那个参数类型,因为示例使用了默认的xml变量!!!非常感谢,现在它工作了!