【问题标题】:Getting data from a form using java使用java从表单中获取数据
【发布时间】:2012-10-02 05:09:40
【问题描述】:
<div></div>
    <div></div>
           <div></div>
            <div></div>
                <ul>
        <form id=the_main_form method="post">
                   <li>
                       <div></div>
                       <div> <h2> 
                <a onclick="xyz;" target="_blank" href="http://sample.com" style="text-decoration:underline;">This is sample</a>
                 </h2></div>
                       <div></div>
                        <div></div>
                      </li>

这样的有50里

我已经发布了一个大 HTML 的 html 片段。

&lt;div&gt; &lt;/div&gt; => 表示它们之间有数据,删除数据,因为它不是必需的。

我想知道 JSOUP-select 语句是如何提取 href 和 Text 的?

我选择了 doc.select("div div div ul xxxx");

其中 xxx 是表单 ..我应该给表单 ID(或)我应该怎么做

【问题讨论】:

  • 所有&lt;div&gt;&lt;/div&gt; 行都是多余的,因为它们都打开关闭一个div。您通过缩进暗示的嵌套是不正确的。如果你的意思是 div 是嵌套的,那么将 &lt;/div&gt; 标签放在正确的位置。
  • 标签: java jsoup


    【解决方案1】:

    试试这个:

    Elements allLis = doc.select("#the_main_form > li ");
    for (Element li : allLis) {
        Element a = li.select("div:eq(1) > h2 > a");
        String href = a.attr("href");
        String text = a.text();
    }
    

    希望对你有帮助!

    编辑:

    Elements allLis = doc.select("#the_main_form > li ");
    

    这部分代码获取了&lt;form&gt; 中id 为#the_main_form 的所有&lt;li&gt; 标签。

    Element a = li.select("div:eq(1) > h2 > a");
    

    然后我们遍历所有&lt;li&gt;标签并得到&lt;a&gt;标签,首先得到&lt;div&gt;标签(第二个在所有&lt;li&gt;s中使用index=1->div:eq(1))然后得到&lt;h2&gt; 标签,我们的 &lt;a&gt; 标签存在。

    希望你现在明白了! :)

    【讨论】:

    • HAShinmi,这行得通。你能让我明白吗? #the_main_form 是表单 id 和 "> li " 的所有子 li???同样你使用 eq(1) 因为它是第二个 div?
    • 顺便说一句,不是HAshinmi,而是HashimR :)
    【解决方案2】:

    请试试这个:

    package com.stackoverflow.works;
    
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    
    /*
     * @ author: sarath_sivan
     */
    
    public class HtmlParserService {
    
        public static void parseHtml(String html) {
            Document document = Jsoup.parse(html);
            Element linkElement = document.select("a").first();
            String linkHref = linkElement.attr("href"); // "http://sample.com"
            String linkText = linkElement.text(); // "This is sample"
            System.out.println(linkHref);
            System.out.println(linkText);
        }
    
        public static void main(String[] args) {
            String html = "<a onclick=\"xyz;\" target=\"_blank\" href=\"http://sample.com\" style=\"text-decoration:underline;\">This is sample</a>";
            parseHtml(html);
        }
    
    }
    

    希望您的类路径中有 Jsoup 库。

    谢谢!

    【讨论】:

      猜你喜欢
      • 2015-06-01
      • 1970-01-01
      • 2016-05-01
      • 2020-08-24
      • 1970-01-01
      • 2014-08-13
      • 2012-09-18
      • 1970-01-01
      相关资源
      最近更新 更多