2010-11-17 19 views
1

注意:由@drachenstern編輯,我不介意因此刪除我的答案。該OP是 俄羅斯(我相信) 烏克蘭(與我的道歉),並有一個ESL問題描述他的問題。兩位HR之間是他原來的職位。如何從DOM元素捕獲Java字符串?


order that get make getElementsByTagName(「s」);並給予價值=「2d331be47563423424abdb7fe2eee6401c7b00417」

我的字符串:

<html> 
    <head> 
    <meta http-equiv='content-type' content='text/html; charset=windows-1251' /> 
    </head> 
    <body onload="try { document.getElementById('l').submit(); } catch(e) { document.getElementsByTagName('form')[0].submit(); }"> 
    <form id='l' method='post' action='http://vkontakte.ru/login.php'> 
     <input type='hidden' name='s' value='2d331be47563423424abdb7fe2eee6401c7b00417' /> 
      <input type='hidden' name='op' value='slogin' /> 
     <input type='hidden' name='redirect' value='1' /> 
     <input type='hidden' name='expire' value='0' /> 
     <input type='hidden' name='to' value='' /> 
    </form> 
    </body> 
</html> 

我需要字符串轉換爲DOM模型以便將使解析

我寫這篇文章是我在Java中的字符串!

String mystr = "<html....</html>"; 

俄羅斯 - 。「УменяестьстрокавJAVAонасодержитвсебеHTMLфайл(страницусайта)Мненужнафункциякотораядостанет值в輸入ЯзнаючтоэтоможнопрекрасносделатьчерезDOMмодель,ноуменя неполучаетсяэтосделать。「

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = factory.newDocumentBuilder(); 
InputSource is = new InputSource(new StringReader(body)); 
Document d = builder.parse(is); 
String ss = d.getElementById("s").getNodeValue(); //- null 

他明白解析JavaScript中的元素的方法是通過像getElementsByTagName('s');,他希望找到等價的方式在Java中做到這一點。他不知道他需要什麼圖書館。對於它的價值,我也不寫Java。他只能用另一個詞來解釋一個隱喻。

谷歌翻譯他的俄羅斯請求爲:

我在JAVA它包含 HTML文件(網頁)的字符串。我需要一個 函數,它可以在 輸入中獲得值。我知道這可以通過DOM模型完成 ,但是我做了 沒有做到這一點。

+0

用'javascript'代替'java'標記。兩者完全不同。 – 2010-11-17 15:57:17

+0

聽起來像這是一個Java String對象的內容,並且OP想要解析出類似於javascript的標記值... – mellamokb 2010-11-17 16:00:56

+0

NOO ...這是JAVA! – Mediator 2010-11-17 16:16:32

回答

0

如果你的HTML字符串將不會有任何比這更復雜,那麼最簡單的解決方案只是用正則表達式解析,像

name='s' value='(.*?)' 
+0

但這不是一個保證,它將是唯一找到的匹配。當然,你可以有一個返回值的數組,但仍然。首先,我認爲他使用這個認證的效果,當有大量的圖書館爲你隱藏在使用cookie的callstack上。出於某種原因,DRY是一個有用的原則。和NIH一樣。 – jcolebrand 2010-11-17 16:09:14

+0

@drachenstern - 好點。我想我們都在努力理解這裏:) – mellamokb 2010-11-17 17:00:07

1

它看起來像問題是,他在呼喚getElementById其中元素有name ='s'NOT id ='s'。我建議調用getElementsByTagName,然後在返回的輸入節點列表中循環查找所需的內容。