我使用WebHarvest解析一些html。我在下面的函数WebHarvest的ide中得到了下面的错误,我不知道出了什么问题。我正在尝试创建一个函数来修剪一个字符串。
错误:
执行XQuery表达式时出错(Xquery=declare变量$xqsource external;让$result :=正常化-空间($xqsource)返回$result)!
Edit2:日志报告以下SAX错误:
.引起的: org.xml.sax.SAXParseException:中不允许内容
我不明白在这种情况下这意味着什么。
函数的参数: sourceString,要修剪的字符串
<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是由字母数字字符、新行和空格组成的字符串,如
“blabla - bla2 “
发布于 2010-12-12 15:03:14
默认类型的xq-param是node() (cf 手册)。因此,WebHarvest试图将变量内容解析为XML (SAXParseException是XML解析错误,而不是特定的XQuery错误)。
您应该向param添加一个string类型声明:
<xq-param name="xqsource" type="string">
<var name="sourceString" />
</xq-param>这有用吗?
https://stackoverflow.com/questions/4419400
复制相似问题