Web ハーベスト API を使用して Web サイトからデータを抽出し、ファイルに保存するモバイル アプリを構築しています。次に、アプリはデータを使用して操作し、表示します。私の問題は、java に webharvest を使用する場合、構成ファイルと出力ファイルのパスが "C:/config.xml" や "C:/docs" のようにローカル ディスクに対して相対的であることですが、Android プロジェクトでそれを使用する場合です。 Eclipse では、構成ファイルはプロジェクト内にあり、出力ファイルはプロジェクトまたはキャッシュ内にある必要があります。Webハーベスト構成を読み取るためのパスと、出力xmlファイルを書き込むためのパスを何に設定すればよいか教えてもらえますか?
1 に答える
0
私は同じ問題を抱えており、悲しいことにそれを機能させることができません。次の解決策を考えましたが、例外がスローされます。
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 クラスのソース コードを提供します。
うまくいけば、この投稿を編集します。
于 2013-04-25T16:58:40.170 に答える