2012-05-27 5 views
1

Je crée une application mobile qui utilise l'API de récolte Web pour extraire des données d'un site Web et les stocker dans un fichier. Ensuite, l'application utilisera les données pour le manipuler et le montrer. Mon problème est que lors de l'utilisation de webharvest pour java, les chemins du fichier de configuration et du fichier de sortie sont relatifs au disque local, comme "C: /config.xml" et "C:/docs", mais lors de l'utilisation sur Android projet sur Eclipse, le fichier de configuration doit être dans le projet et le fichier de sortie doit être dans le projet ou dans le cache. Quelqu'un peut-il me dire ce que je devrais mettre le chemin pour lire la config Web récolte, et le chemin pour écrire le fichier XML de sortie?Utilisation de la collecte Web sur Android

Répondre

0

J'ai le même problème et malheureusement je ne suis pas en mesure de le faire fonctionner. J'ai pensé à la solution suivante, mais cela crée une exception.

InputStream in_s = context.getResources().openRawResource(R.raw.webharvestconfig); 
InputSource inputSource = new InputSource(in_s); 
ScraperConfiguration config = new ScraperConfiguration(inputSource); 

L'exception:

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) 

J'ai aussi essayé d'écrire directement la chaîne xml dans le InputStream comme ceci:

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()); 

Mais sans plus de chance (bien que l'exception était différente). Je ne sais pas, en théorie, cela devrait fonctionner. En faisant des recherches pour l'exception que je viens montrais, je trouve même le following example qui utilise le ScraperConfiguration de la même manière que je fais, mais ...

Juste pour le tremblement de l'exhaustivité et de donner plus d'informations, je fournir le source code de la classe ScrapeConfiguration.

Si je suis en mesure de le faire fonctionner, je vais modifier ce post.

Questions connexes