0

値を掘り出そうとしている HTML ページがありますLogname。すべてのliテキストを 1 つの文字列としてまとめることはできますが、希望どおりにはなりません。. の後のログ名の 2 番目の部分だけをliお願いし</span>ます。それを簡単に手に入れる方法はありますか?私が持っているもので、分割して欲しいものを手に入れることができましたが、もっとエレガントな方法があるはずですか?

現在のコード

Elements detail = mHtml.select ("div.alpha-first");


        for (Element items : detail)
        {
            Log.d (TAG, " label text " + items.text());

            detail.

            if (items.text().equals ("ACID"))
            {
                Log.d (TAG, " got ACID ");
            }

        }

HTML

<html>
<title>emp id chart</title>
<body>
<div class="alpha-first">
      <ul class="account-detail">
         <li><span class="label">ID</span>42</li>
         <li><span class="label">Logname</span>George</li>
         <li><span class="label">Surname</span>Glass</li>
         <li><span class="label">ACID</span>15</li>
         <li><span class="label">Dept</span>101348</li>
         <li><span class="label">Empclass</span>Echo</li>
      </ul>
      <p class="last-swipe">3 Apr 9:53</p><br>  </div>
   <div class="detail-last-loc">
      <p style="font-size: 8pt;">Current status</p>
      <p class="current-location">Bldg #23 South Lot</p>
      <p> current time 10:43 <br /></p>
      <div class="detail-extra">
         <p><a href="/empswipe/history/151034842">More</a> | <a href="/empswipe/history/151034842/3">3 Day History</a></p>
      </div>
</div>
</body>
</html>
4

1 に答える 1

3

私が理解したことから、あなたの例を考えると、 from: <li><span class="label">Logname</span>George</li>、値:を取得したいと思うでしょうGeorge

本当に反復する必要はありません。直接取得できます。このコードをエレガントとは言いませんが、それでも、次のとおりです。

    //Select the <span> element the text "Logname"
    Elements select = mHtml.select(".account-detail span.label:contains(Logname)");

    //Get the element itself, since the select returns a list
    Element lognameSpan = select.get(0);

    //Get the <li> parent of the <span>
    Element parent = lognameSpan.parent();

    //Access the text node of the <li> directly since there is only one
    String logname = parent.textNodes().get(0).text();

それが役に立てば幸い。

于 2013-04-03T18:12:55.867 に答える