2014-04-17 56 views
1

這是我第一次在這裏發佈。我有了這樣一個隱藏的輸入字段網站:android從html隱藏表單字段中獲取文本

<form autocomplete="off" id="Form1" action="login.aspx" method="post" name="Form1"> 
    <input type="hidden" value="" name="__EVENTTARGET"> 
    <input type="hidden" value="" name="__EVENTARGUMENT"> 
    <input type="hidden" value="dDwtMTg3MDkxXN199v0w==" name="__VIEWSTATE"> 

我希望能夠得到來自現場的文本與NAME =「__ VIEWSTATE」,並將其存儲到一個變量。 所有這些都需要在java中爲android應用程序執行。 有沒有什麼辦法從html代碼中獲取這個值?我檢查了網站的GET方法並沒有通過這個傳遞值。問題是這個值會不時變化,我必須每次都得到新的值。

+0

你爲什麼用PostBack信息設置名稱?它的理解事件句柄用於事件標記。名稱標籤是帖子變量的ID。 – WASasquatch

回答

0

你可以試試這個(跳你的HTML代碼以及形成...):

Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(params[0]); 
final NodeList inputs = document.getElementsByTagName("input"); 
for(int index = 0; index <inputs.getLength(); index++) 
{ 
    if(inputs.item(index).getUserData("name").equals("__VIEWSTATE")) 
    { 
     final String yourValue = (String) inputs.item(index).getUserData("value"); 
     break; 
    } 
} 
+0

請看看這個http://stackoverflow.com/questions/37644551/auto-fill-forms-in-webview-by-javascript-android –

0

假設你已經acquirred頁面HTML代碼,你想要得到的特定字段的值,我會推薦使用HTML解析器,如thisthis

在另一方面你的任務似乎是如此簡單,使用外部工具是矯枉過正,所以它可能是足以提取手動所需的值:

Pattern matchPattern = Pattern.compile("name=\"__EVENTARGUMENT\"> <input type=\"hidden\" value=\"(.*?)\" name=\"__VIEWSTATE\">"); 
Matcher m = matchPattern.matcher(yourHTMLCode); 
m.find(); 
String res = m.group(1); 
// do something with 'res' containing the desired value 
+0

我用jsoup解析器,但現在我面臨其他問題。代碼似乎不起作用..你能找出問題嗎? 代碼在這裏[link](https://docs.google.com/document/d/1UWdjL0KhTyKVlMmXbXfFLgY8h2OP_wcyqmmkPi5oMZA/edit?usp=sharing) – user3544346

0

使用Jsoup爲HTML解析Java和Android系統。它使所有的工作變得簡單。

相關問題