【问题标题】:WebHarvest XML not well formedWebHarvest XML 格式不正确
【发布时间】:2013-04-29 04:04:33
【问题描述】:

我正在使用 WebHarvest 尝试从 Woot.com 接收数据,但遇到了一些不同的错误。我能够通过第一个进程获取网站,但是当我尝试在变量窗口内测试 xpath 时,我收到错误 org.xml.sax.SAXParseException;行号:86;列号:99;对实体“pt2”的引用必须以“;”结尾分隔符。如果我尝试使用它返回的漂亮打印函数 XML 格式不正确:对实体“pt2”的引用必须以 ';' 结尾分隔符。 {line: 86, col:99]. 最后,在我正在编写的脚本中,如果我将 xpath 标记与表达式一起放入,我会得到 element type "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>

【问题讨论】:

  • 请分享您创建的配置文件以获得所需的输出。让我们知道您实际上想从 Woot.com URL 获得什么

标签: xml xpath webharvest non-well-formed


【解决方案1】:

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

<?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>

您可以使用&amp;apos;&amp;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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-04-29
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多