Hoe de resultaten geanalyseerd door Java-script in Android te ontleden

Ik ben bezig met een Android-app die twee parameters naar een webpagina moet sturen en ik gebruik HttpClient, HttpPost en HttpResponse om dat te doen.

    HttpResponse responsePOST = client.execute(post);
    HttpEntity resEntity = responsePOST.getEntity();
    rez = EntityUtils.toString(resEntity);

In rez is volledige HTML van pagina en ik wil resultaten weergeven in TableLayout maar kan ze niet krijgen. Resultaten die ik krijg, worden geleverd door de JavaScript-functie en Jsoup kan ze niet parseren en ze zijn slechts een deel van de webpagina. Hoe kan ik die resultaten krijgen zonder rez String te proberen te ontleden met regex?

0

1 antwoord

Ik zou voorkomen dat HTML als een mechanisme voor gegevensuitwisseling wordt teruggegeven. Als u alleen in gegevens geïnteresseerd bent, zou ik in plaats daarvan JSON retourneren ( Link ). Ik heb veel succes gehad met de GSON -bibliotheek om parseer JSON terug van mijn web-endpoints/apis.

Bewerken

Zag je reactie. Als je de HTML DOM moet lopen lijkt het alsof JTidy een goede optie is. Zie de this StackOverflow-vraag.

2
toegevoegd
zie mijn bewerking van mijn antwoord. Het lijkt erop dat JTidy ( stackoverflow.com/questions/238036/java-html-parsing ) behoorlijk is optie voor het parseren van HTML in java
toegevoegd de auteur Mike Marshall, de bron
Tnx voor antwoord, maar de pagina waarnaar ik verwijs is www.mtel.ba/imenik/rezultat.php (je zet naam of nuber in tekstvak en selecteer de stad uit de vervolgkeuzelijst en je krijgt resultaten, bijvoorbeeld telefoonnummer of adres ) en het is niet mijn webpagina (ik heb geen toegang tot pagina-api). Dus ik weet niet hoe ik dat moet doen.
toegevoegd de auteur majk, de bron
Ik heb ook geprobeerd om rez String in webview code te zetten String html = getIntent (). GetExtras (). GetString ("html"); setContentView (R.layout.browser); WebView webView = (WebView) findViewById (R.id.webview); webView.getSettings() setJavaScriptEnabled (true).; webView.setWebChromeClient (nieuwe WebChromeClient ()); webView.loadData (html, "text/html", "utf-8"); maar de webview geeft niets betekenisvols.
toegevoegd de auteur majk, de bron