我正在使用WebHarvest尝试从Woot.com接收数据,我收到了一些不同的错误。我能够使用第一个进程获取网站,但是当我尝试在变量窗口内测试xpath时,我得到错误 org.xml.sax.SAXParseException; lineNumber:86; columnNumber:99;对实体“pt2”的引用必须以';'结尾定界符即可。如果我尝试使用漂亮的print函数,则返回 XML格式不正确:对实体“pt2”的引用必须以';'结尾分隔符。 {line:86,col:99]。最后,在我编写的脚本内部,如果我在表达式的xpath标签中输入元素类型“xpath”必须跟随attributespecifications, “>” 中或“/>”。有人能告诉我我做错了什么吗?我是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>
答案 0 :(得分:0)
为了使格式良好的格式,您在属性'
中使用了"
而不是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>
您可以使用'
或"
来包装属性。但是,它无论如何都不能嵌套。以下是一些例子:
<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='overview'])[1]//h2/text()'> --- valid
<xpath expression="(//div[@class='overview'])[1]//h2/text()"> --- valid
<xpath expression="(//div[@class="overview"])[1]//h2/text()"> --- valid
希望这会有所帮助。