0

我正在使用 WebHarvest 尝试从 Woot.com 接收数据,但遇到了一些不同的错误。我可以通过第一个进程获取网站,但是当我尝试在变量窗口内测试 xpath 时,我收到错误org.xml.sax.SAXParseException; 行号:86;列号:99;对实体“pt2”的引用必须以“;”结尾 分隔符。如果我尝试使用它返回的漂亮打印函数XML 格式不正确:对实体“pt2”的引用必须以 ';' 结尾 分隔符。{行:86,列:99]。最后,在我正在编写的脚本内部,如果我将 xpath 标记与表达式一起放入,我会得到元素类型“xpath”必须后跟属性规范、“>”或“/>”。有人可以告诉我我做错了什么吗?我对 WebHarvest 很陌生,对这种程序没有任何经验。

我的代码是:

<?xml version="1.0" encoding="UTF-8"?><config>
<xpath expression="(//div[@class="overview"])[1]//h2/text()">
<html-to-xml>
<http url="http://www.woot.com/"/>
</html-to-xml>
</xpath>
</config>
4

1 回答 1

0

为了使 XML 格式正确,您可以使用&apos;而不是&quot;在属性expression中。就这样:

<?xml version="1.0" encoding="UTF-8"?><config>
<xpath expression="(//div[@class='overview'])[1]//h2/text()">
<html-to-xml>
<http url="http://www.woot.com/"/>
</html-to-xml>
</xpath>
</config>

您可以使用&apos;&quot;包装一个属性。但是,无论如何它不能嵌套。这里有几个例子:

 <xpath expression='(//div[@class="overview"])[1]//h2/text()'>           --- valid
 <xpath expression='(//div[@class='overview'])[1]//h2/text()'>           --- invalid
 <xpath expression="(//div[@class="overview"])[1]//h2/text()">           --- invalid
 <xpath expression='(//div[@class=&apos;overview&apos;])[1]//h2/text()'> --- valid
 <xpath expression="(//div[@class=&apos;overview&apos;])[1]//h2/text()"> --- valid
 <xpath expression="(//div[@class=&quot;overview&quot;])[1]//h2/text()"> --- valid

希望这可以帮助。

于 2013-04-29T07:32:28.340 回答