Использование веб-урожая на Android
Я создаю мобильное приложение, которое использует API веб-сбора урожая для извлечения данных с веб-сайта и сохранения их в файле. Затем приложение будет использовать данные, чтобы манипулировать ими и показывать их. Моя проблема заключается в том, что при использовании webharvest для java пути файла конфигурации и выходного файла относятся к локальному диску, например, "C:/config.xml" и "C:/docs", но при использовании этого в проекте Android на Eclipse файл конфигурации должен находиться в проекте, а выходной файл должен находиться в проекте или в кэше. Кто-нибудь может сказать мне, что я должен поставить путь для чтения конфигурации веб-сбора и путь для записи выходного файла XML?
1 ответ
У меня та же проблема, и, к сожалению, я не могу заставить ее работать. Я думал о следующем решении, но оно выдает исключение.
InputStream in_s = context.getResources().openRawResource(R.raw.webharvestconfig);
InputSource inputSource = new InputSource(in_s);
ScraperConfiguration config = new ScraperConfiguration(inputSource);
Исключение:
04-25 16:47:26.835: W/System.err(1057): org.webharvest.exception.ParserException: asset
04-25 16:47:26.835: W/System.err(1057): at org.webharvest.definition.XmlParser.parse(Unknown Source)
04-25 16:47:26.846: W/System.err(1057): at org.webharvest.definition.XmlNode.getInstance(Unknown Source)
04-25 16:47:26.846: W/System.err(1057): at org.webharvest.definition.ScraperConfiguration.createFromInputStream(Unknown Source)
04-25 16:47:26.846: W/System.err(1057): at org.webharvest.definition.ScraperConfiguration.<init>(Unknown Source)
Я также попытался записать непосредственно строку XML в InputStream следующим образом:
InputStream in = new ByteArrayInputStream("<?xml version=\"1.0\" encoding=\"UTF-8\"?><config charset=\"UTF-8\"><html-to-xml> <http url=\"http://www.google.com\"/> </html-to-xml></config>".getBytes());
Но без удачи (хотя исключение было другим).
Я не знаю, в теории, это должно работать. Исследуя исключение, которое я только что показал, я даже нашел следующий пример, в котором ScraperConfiguration используется так же, как и я, но...
Для полноты картины и получения дополнительной информации я предоставлю исходный код из класса ScrapeConfiguration.
Если я смогу заставить это работать, я буду редактировать этот пост.