获取具有相同父级的HTML节点 - JAVA

时间:2011-07-26 18:45:10

标签: java html parsing dom jsoup

我有一个包含几个与下面发布的示例类似的表单的文档。我想从其中一个表单的隐藏输入字段中提取所有名称/值对,表单由其名称标识,我不知道会有多少隐藏字段存在。

我可以使用选择器查询选择文档中的所有相关输入字段:input[type=hidden][name][value]

有没有办法只选择FORM[name=lgo]作为父级的输入字段?使用某种过滤器可能吗?

<FORM METHOD='POST' onSubmit='javascript:isWaitForm();' ACTION='https://abc-azerty.querty.se/carmon/servlet/action/change_1     ' name='lgo'>
    <input type='hidden' name='LogInFlag' value='1'>
    <input type='hidden' name='LogInTime' value='2011-07-26 11:10'>
    <input type='hidden' name='cCode2' value='SE'>
    <a href='javascript:isWaitForm();javascript:document.lgo.submit();' class='linkNone'>Business Monitor</a>
    <a href='javascript:isWaitForm();javascript:document.lgo.submit();' class='linkNone'>
    <input type='image' src='/images/button_arrow_right.gif' height=19 width=22 border=0 style='float:left;'></A>
</FORM>

2 个答案:

答案 0 :(得分:2)

基于this info,至少应该有以下一项工作 -

doc.select("form[name=lgo] > input[type=hidden]");

或者,您可以链接您的选择 -

doc.select("form[name=lgo]").select("input[type=hidden]");
  

select方法在Document,Element或Elements中可用。它是上下文的,因此您可以通过从特定元素中进行选择或通过链接选择调用来进行过滤。

答案 1 :(得分:0)

<script type="text/javascript">
var inputs = document.getElementsByName('lgo')[0].getElementsByTagName('input');
for(var i = 0 ; i < inputs.length ; i++){
  if(inputs[i].getAttribute('type') == "hidden") {
  // This will get the name: inputs[i].getAttribute('name')
  // This will get the value: inputs[i].value)
  console.log(inputs[i].getAttribute('name') + ": " + inputs[i].value);
}}
</script>