私はCodename Oneアプリを開発する道路ブロックに遭遇しました。私のクラスのプロジェクトの1つは、ウェブサイトから3つの特定のhtml "td"要素を解析し、そのテキストを文字列に保存し、そのテキストデータをCodename Oneマルチボタンに入力します。もともと私はこの操作にjSoupを使用しましたが、すぐにCodename Oneがサードパーティ製のjarファイルをサポートしていないことを認識しましたので、この方法を以下のように使用しました。Codename OneのWebサイトから特定のデータを解析するにはどうすればよいですか?
public void showOilPrice() {
if (current != null) {
current.show();
return;
}
WebBrowser b = new WebBrowser() {
@Override
public void onLoad(String url) {
BrowserComponent c = (BrowserComponent) this.getInternal();
JavascriptContext ctx = new JavascriptContext(c);
String wtiLast = (String) ctx.get("document.getElementById('pair_8849').childNodes[4].innerText");
String wtiPrev = (String) ctx.get("document.getElementById('pair_8849').childNodes[5].innerText");
String wtiChange = (String) ctx.get("document.getElementById('pair_8849').childNodes[8].innerText");
Form op = new Form("Oil Prices", new BoxLayout(BoxLayout.Y_AXIS));
MultiButton wti = new MultiButton("West Texas Intermediate");
Image icon = null;
Image emblem = null;
wti.setEmblem(emblem);
wti.setTextLine2("Current Price: " + wtiLast);
wti.setTextLine3("Previous: " + wtiPrev);
wti.setTextLine4("Change: " + wtiChange);
op.add(wti);
op.show();
}
};
b.setURL("https://sslcomrates.forexprostools.com/index.php?force_lang=1&pairs_ids=8833;8849;954867;8988;8861;8862;&header-text-color=%23FFFFFF&curr-name-color=%230059b0&inner-text-color=%23000000&green-text-color=%232A8215&green-background=%23B7F4C2&red-text-color=%23DC0001&red-background=%23FFE2E2&inner-border-color=%23CBCBCB&border-color=%23cbcbcb&bg1=%23F6F6F6&bg2=%23ffffff&open=show&last_update=show");
}
この方法は、シミュレータで動作します(と「減価償却API」の警告を与える)が、私は署名した後、オンラインでの私のビルドを提出したときに実行されません。私はparse4cn1とcn1JSONライブラリをインポートし、一連の障害を経験しましたが、提出するとビルドエラーが発生します。私は新鮮なものから始まり、もし存在すれば代替方法を使いたいと思う。これらのライブラリを使用せずにこのコードセグメントを書き直す方法はありますか?おそらく、XMLParserクラスを使用しますか?
onLoadが私の問題でした。私はXMLParserに切り替えました。すべてがうまくいきました。助けてくれてありがとう! –