1
讓我們解釋發生了什麼,我解析一個html頁面以顯示其android應用程序中的內容。首先,我加載HTML與Android webview
,然後我通過代碼獲取HTML代碼如下:無法使用Jquery和Jsoup訪問動態生成的元素
// load a webview
wb.postUrl(url, EncodingUtils.getBytes(postData, "BASE64"));
// on page finish i will call a @JavascriptInterface
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.HTMLOUT.processMain(
document.getElementsByTagName('html')[0].innerHTML);");
}
@JavascriptInterface
class LoadListener{
@JavascriptInterface
public void processMain(String html)
{
doc= Jsoup.parse(html);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//here i can parse doc that is a jsoup document and select elements
doc.select("#login > tbody > tr > td.error").text();
});
我的問題:那裏是我的HTML頁面table
動態添加到HTML(我不知道怎麼樣,追加?addchild?php?或...因爲我沒有訪問php代碼)。我用這行代碼選擇那張表! 但它返回null。
doc.select("#login > tbody > tr > td.error").text()
那麼我該如何選擇該表?
你是對的jsoup不能!但我解析的結果選擇整個頁面的JavaScript'view.loadUrl(「javascript:window.HTMLOUT.processMain( document.getElementsByTagName('html')[0] .innerHTML);」); '然後用jsoup解析它!我的問題是JavaScript不能選擇動態生成的元素呢? – Oli
哦,那麼JSoup應該能夠解析這個。你能分享一下你試圖解析的生成的HTML嗎? – luksch