0

首先,我想知道是否有与 Android 应用程序编程一起使用的 HTML 解析器,或者我是否只能访问 Android 开发人员网站上列出的 html 命令。原因是我正在制作一个允许您访问 Zelda Wikia 的应用程序,而不是硬编码所有内容,例如我想继续使用 MediaWiki API 提取名称的视频游戏的标题,我发现的命令是这个:

http://zelda.wikia.com/api.php?action=query&list=categorymembers&cmtitle=Category:Games&cmlimit=500

这将返回 HTML 格式的所有标题,我能想到从返回的内容中提取所需内容的唯一方法是使用 HTML 解析器,但我不确定是否有一个适用于 Android 编程的方法,如果是这样,如何我什至会从中提取我需要的东西。从这里获取数据后,我想将其显示在 ListView 中,当单击标题时,它会将用户带到 Wikia 以获取 WebView 中的特定标题。这是我应该这样做的方式还是有人有任何其他建议,我真的需要帮助。其余的代码如下,以防有人想看看我有什么:

    package com.lvlup.kikurself.zeldatest;

    import android.app.ListActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.AdapterView.OnItemClickListener;

    public class zeldaGames extends ListActivity {
        public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        String[] values = new String[] { "The Legend of Zelda", "Zelda II: The
         Adventure of Link", "The Legend of Zelda: Ocarina of Time",};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
        final ListView zeldaList = getListView();

        zeldaList.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long thisID)
      {
         Object o = (zeldaList.getItemAtPosition(position));
         String gameName_temp = (o.toString());

         Intent newIntent = new Intent(v.getContext(), gameDisp.class);
         newIntent.putExtra("tempG", gameName_temp);
         startActivity(newIntent);

    }
    });

感谢您抽出时间来阅读。

4

2 回答 2

2

我不会在电话上使用解析器。在你知道之前,页面的所有者可能会想出一个新的布局,破坏你的应用程序。

相反,我会构建一个 web 服务(带有 DomXML 的 PHP 是一个很好的选择),它解析给定的站点,并以 XML、JSON 或其他格式返回文件。然后我会编写一个应用程序来使用解析器 Web 服务作为数据源。

这样,您将拥有更多的计算机能力。您只需要维护一个解析器实例,您知道它可以在任何下载了您的应用程序的设备上运行。

也许听起来工作量很大,但相信我——你会做得更好。个人和专业经验

于 2012-05-10T20:03:54.053 回答
1

将 &format=xml 附加到您的 URL 以获取机器可读的数据。请参阅https://www.mediawiki.org/wiki/API:Data_formats上有关 API 格式的 MW 帮助和https://www.mediawiki.org/wiki/API上的一般 API 帮助

于 2012-05-11T08:52:30.103 回答