首页>Program>source

我已经搜寻了几天,试图找到以下问题的答案.我对Java和Android编程还很陌生,主要是从复制粘贴编辑场景中学习的,但是尽管有一些教程,但我确实为此感到吃力。

我已经尝试使用htmlcleaner作为解析器,并且我确定我已经接近了,但是无法正确使用它。

我正在尝试解析网站上的值表(即 <TR>TD,TD,TD,TD</TR> )转换为标准的Android SQLite数据库.因此,表的每一行将是数据库中的一行。

从理论上讲,这应该很简单,但是我被各种方法所困扰,并且不了解执行此操作的简单方法。

有人可以帮忙吗? 请不要将我指向htmlparser或非特定的教程,因为我从事这些工作已有很长时间了,并且无法管理解决方案。

我要解析的表值在这里:团队和value观

编辑:::

好的,我想我正在接近使用JSoup.我可以从[td]标签中获取一个值并将其放入字符串中.但是,如何修改以下代码,以便为每个" for"迭代每一行(即在每个[tr]中),并将每个[td]值放入一个String数组?

public class GetTable extends Activity {
static String hello;

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
    setContentView(R.layout.testlayout);
try {
    populateTexts();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}
    private void populateTexts() throws IOException{
    String url =     "http://news.bbc.co.uk/mobile/bbc_sport/rugby/competition/ru100/table/index.shtml?context=cps_ukfs";
    Document doc = Jsoup.connect(url).get();
  Elements links = doc.select("td");

    for (Element link : links) {
        hello = link.text();
        TextView twittertext10 = (TextView)findViewById(R.id.testView1);
        twittertext10.setText(hello);
    }
    }
}
最新回答
  • 1月前
    1 #

    解决方案如下.我将数据库输出到列表视图中只是为了显示我拥有所有正确的数据。

    public class GetTable extends ListActivity {
    static String team;
    static int played;
    static int won;
    static int drew;
    static int points;
    private TableDbAdapter mDbHelper;
    static int position = 0;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        setContentView(R.layout.testlayout);
        mDbHelper = new TableDbAdapter(this);
           mDbHelper.open();
        mDbHelper.clearTable();
    try {
        populateTexts();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    populateList();
    }
        private void populateTexts() throws IOException{
        String url =     "http://news.bbc.co.uk/mobile/bbc_sport/rugby/competition/ru100/table/index.shtml?    context=cps_ukfs";
        Document doc = Jsoup.connect(url).get();
        //
      Elements rows = doc.select("table[class=tblResults teamTable] tr:gt(0):lt(13)");
            String s[] = new String[rows.size()];
            for(Element row : rows){
                s[0] = row.child(0).text();
                s[1] = row.child(1).text();
                s[2] = row.child(2).text();
                s[3] = row.child(3).text();
                s[4] = row.child(4).text();
            team = s[0];
            if (s[1] !=""){
            played = Integer.parseInt(s[1]);}
            else played = 0;
            if (s[2] !=""){
            won = Integer.parseInt(s[2]);}
            else won = 0;
            if (s[3] !=""){
            drew = Integer.parseInt(s[3]);}
            else drew = 0;
            if (s[4] !=""){
            points = Integer.parseInt(s[4]);}
            else points = 0;
            position ++;
    
        // sql insert
           mDbHelper.createTableRow(position, team, played, won, drew, points);
    
        }
        }
        private void populateList() {
               // Get all of the fixtures from the database and create the item list
               Cursor c = mDbHelper.fetchWholeTable();
               startManagingCursor(c);
               String[] from = new String[] { TableDbAdapter.KEY_POSITION, TableDbAdapter.KEY_TEAM, TableDbAdapter.KEY_PLAYED, TableDbAdapter.KEY_WINS, TableDbAdapter.KEY_DREW, TableDbAdapter.KEY_POINTS};
               int[] to = new int[] { R.id.fixtextlist, R.id.fixtextlistkotime, R.id.fixtextlisthome, R.id.fixtextlisths, R.id.fixtextlistas, R.id.fixtextlistaway};
               // Now create an array adapter and set it to display using our row
               SimpleCursorAdapter table =
                   new SimpleCursorAdapter(this, R.layout.fixlist_item, c, from, to);
               setListAdapter(table);
    
    
           }
    }
    

  • 1月前
    2 #

    您可能最好使用SAX或其他XML解析器来解析表数据,然后从那里使用SQLIteDatabaseHelper类创建表并插入数据.如果您有更具体的问题,我会尝试给出更具体的答案:-)

  • php:从Gmail提取邮件时获取发件人的电子邮件ID
  • asp.net:行上Jqgrid中的上下文菜单单击Jqgrid中的