WebHarvest XML неправильно сформирован

Я использую WebHarvest для получения данных с Woot.com и получаю несколько разных ошибок. Я могу получить веб-сайт с помощью первого процесса, но когда я пытаюсь проверить xpath внутри окна переменных, я получаю сообщение об ошибке org.xml.sax.SAXParseException; номер строки: 86; номер столбца: 99; Ссылка на сущность "pt2" должна заканчиваться символом ';' разделитель. Если я попытаюсь использовать красивую функцию печати, она вернет 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>

person user2330657    schedule 29.04.2013    source источник
comment
Пожалуйста, поделитесь своим файлом конфигурации, который вы создали, чтобы получить желаемый результат. И дайте нам знать, что на самом деле вы хотите получить от URL-адреса Woot.com.   -  person Navin Rawat    schedule 29.04.2013


Ответы (1)


Чтобы 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

Надеюсь, это поможет.

person Cylian    schedule 29.04.2013