Android开发使用Dom从网络端解析xml文件

作者:小菜 更新时间:2025-03-16 点击数:
简介:本程序实现了从网络端解析xml文件,展示在列表,并实现点击进入相关页面。

首先我们创建一个类,用来实现http请求和xml文件节点的获取public class

【菜科解读】

本程序实现了从网络端解析xml文件,展示在列表,并实现点击进入相关页面。

首先我们创建一个类,用来实现http请求和xml文件节点的获取

public class XMLParser { // constructor public XMLParser() { * Getting XML from URL making HTTP request * @param url string * */ public String getXmlFromUrl(String url) { String xml = null; try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); xml = EntityUtils.toString(httpEntity,"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); // return XML return xml; * Getting XML DOM element * @param XML string * */ public Document getDomElement(String xml){ Document doc = null; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new StringReader(xml)); doc = db.parse(is); } catch (ParserConfigurationException e) { Log.e("Error: ", e.getMessage()); return null; } catch (SAXException e) { Log.e("Error: ", e.getMessage()); return null; } catch (IOException e) { Log.e("Error: ", e.getMessage()); return null; return doc; /** Getting node value * @param elem element public final String getElementValue( Node elem ) { Node child; if( elem != null){ if (elem.hasChildNodes()){ for( child = elem.getFirstChild(); child != null; child = child.getNextSibling() ){ if( child.getNodeType() == Node.TEXT_NODE ){ return child.getNodeValue(); return ""; * Getting node value * @param Element node * @param key string * */ public String getValue(Element item, String str) { NodeList n = item.getElementsByTagName(str); return this.getElementValue(n.item(0));}

然后我们创建一个Activity继承与ListActivity,在这个Activity中定义一些节点。

public class AndroidXMLParsingActivity extends ListActivity { // All static variables static final String URL = "http://10.0.2.2/biyeshejidata/menu.xml"; // XML node keys static final String KEY_ITEM = "item"; // parent node static final String KEY_ID = "id"; static final String KEY_NAME = "name"; static final String KEY_COST = "cost"; static final String KEY_DESC = "description"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList> menuItems = new ArrayList>(); XMLParser parser = new XMLParser(); String xml = parser.getXmlFromUrl(URL); // getting XML Document doc = parser.getDomElement(xml); // getting DOM element NodeList nl = doc.getElementsByTagName(KEY_ITEM); // looping through all item nodes for (int i = 0; i map = new HashMap(); Element e = (Element) nl.item(i); // adding each child node to HashMap key => value map.put(KEY_ID, parser.getValue(e, KEY_ID)); map.put(KEY_NAME, parser.getValue(e, KEY_NAME)); map.put(KEY_COST, "Rs." + parser.getValue(e, KEY_COST)); map.put(KEY_DESC, parser.getValue(e, KEY_DESC)); // adding HashList to ArrayList menuItems.add(map); // Adding menuItems to ListView ListAdapter adapter = new SimpleAdapter(this, menuItems, R.layout.list_item, new String[] { KEY_NAME, KEY_DESC, KEY_COST }, new int[] { R.id.name, R.id.desciption, R.id.cost }); setListAdapter(adapter); // selecting single ListView item ListView lv = getListView(); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView ?> parent, View view, int position, long id) { // getting values from selected ListItem String name = ((TextView) view.findViewById(R.id.name)).getText().toString(); String cost = ((TextView) view.findViewById(R.id.cost)).getText().toString(); String description = ((TextView) view.findViewById(R.id.desciption)).getText().toString(); // Starting new intent Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class); in.putExtra(KEY_NAME, name); in.putExtra(KEY_COST, cost); in.putExtra(KEY_DESC, description); startActivity(in);}

最后实现点击进入一个新的页面的Activity。

public class SingleMenuItemActivity extends Activity { // XML node keys static final String KEY_NAME = "name"; static final String KEY_COST = "cost"; static final String KEY_DESC = "description"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.single_list_item); // getting intent data Intent in = getIntent(); // Get XML values from previous intent String name = in.getStringExtra(KEY_NAME); String cost = in.getStringExtra(KEY_COST); String description = in.getStringExtra(KEY_DESC); // Displaying all values on the screen TextView lblName = (TextView) findViewById(R.id.name_label); TextView lblCost = (TextView) findViewById(R.id.cost_label); TextView lblDesc = (TextView) findViewById(R.id.description_label); lblName.setText(name); lblCost.setText(cost); lblDesc.setText(description);} Android,开发,使用,Dom,从,网络,端,解析,xm

使用U盘轻松重装系统

想重装系统不会怎么办?菜科网一键重装系统轻松在线帮您搞定系统重装问题。

软件支持 在线重装、U盘制作、自定义重装 等多种模式。

简介:在日常使用电脑或手机的过程中,我们难免会遇到系统崩溃、病毒感染等问题,这时候就成为了解决问题的有效方法。

而使用U盘轻松重装系统,不仅方便快捷,还能避免使用光盘等传统方式带来的麻烦。

本文将介绍使用U盘重装系统的方法和步骤,帮助大家轻松应对系统问题。

工具原料:电脑品牌型号:Lenovo ThinkPad T480操作系统版本:Windows 10软件版本:Windows 10安装镜像文件一、准备U盘和安装镜像文件1、选择一款容量足够的U盘,建议容量不低于8GB。

2、下载并准备好对应的操作系统安装镜像文件,可以从官方网站或其他可信渠道获取。

二、制作U盘启动盘1、将U盘插入电脑的USB接口。

2、打开电脑上的磁盘管理工具,格式化U盘为FAT32格式。

3、使用专业的U盘启动盘制作工具,如Rufus等,选择已下载好的安装镜像文件,制作U盘启动盘。

三、设置电脑启动项1、重启电脑,进入BIOS设置界面。

2、找到启动项设置,将U盘启动项调整到第一位。

3、保存设置并退出BIOS。

四、重装系统1、重启电脑,此时系统会从U盘启动。

2、按照提示选择语言、时区等设置。

3、选择 自定义安装 选项,对位置进行选择。

4、根据提示完成系统安装过程,等待系统自动重启。

五、安装驱动和软件1、系统重启后,使用U盘中的驱动程序安装所需的硬件驱动。

2、根据个人需求,安装常用软件和工具。

通过使用U盘轻松,我们可以快速解决系统问题,提高电脑或手机的使用效率。

在操作过程中,需要注意备份重要数据,避免数据丢失。

同时,选择正版的操作系统安装镜像文件,确保系统的安全性和稳定性。

未来,我们可以进一步研究和探索更加便捷的系统重装方法,提升用户体验。

标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。

对于商业使用,请联系各自版权所有者,否则法律问题自行承担。

Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 简介:在日常使用电脑或手机的过程中,我们难免会遇到系统崩溃、病毒感染等问题,这时候就成为了解决问题的有效方法。

而使用U盘轻松重装系统,不仅方便快捷,还能避免使用光盘等传统方式带来的麻烦。

本文将介绍使用U盘重装系统的方法和步骤,帮助大家轻松应对系统问题。

工具原料:电脑品牌型号:Lenovo ThinkPad T480操作系统版本:Windows 10软件版本:Windows 10安装镜像文件一、准备U盘和安装镜像文件1、选择一款容量足够的U盘,建议容量不低于8GB。

2、下载并准备好对应的操作系统安装镜像文件,可以从官方网站或其他可信渠道获取。

二、制作U盘启动盘1、将U盘插入电脑的USB接口。

2、打开电脑上的磁盘管理工具,格式化U盘为FAT32格式。

3、使用专业的U盘启动盘制作工具,如Rufus等,选择已下载好的安装镜像文件,制作U盘启动盘。

三、设置电脑启动项1、重启电脑,进入BIOS设置界面。

2、找到启动项设置,将U盘启动项调整到第一位。

3、保存设置并退出BIOS。

四、重装系统1、重启电脑,此时系统会从U盘启动。

2、按照提示选择语言、时区等设置。

3、选择 自定义安装 选项,对位置进行选择。

4、根据提示完成系统安装过程,等待系统自动重启。

五、安装驱动和软件1、系统重启后,使用U盘中的驱动程序安装所需的硬件驱动。

2、根据个人需求,安装常用软件和工具。

通过使用U盘轻松,我们可以快速解决系统问题,提高电脑或手机的使用效率。

在操作过程中,需要注意备份重要数据,避免数据丢失。

同时,选择正版的操作系统安装镜像文件,确保系统的安全性和稳定性。

未来,我们可以进一步研究和探索更加便捷的系统重装方法,提升用户体验。

菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。

android版最新凯立德冬季地图

前往凯立德专题 过年了方便一下大家的出行,从网上搜集到的一个 android版的凯立德。

【运行环境】:Android(安卓)【版本信息】:C2025-C7802-2721W09该版本除了支持主流的800*480分辨率外,经测试还支持320x240、240x400、480x320、800x480、850x480、960x540、960x640等常见到的一些分辨率,甚至平板电脑1024x600、1024x768、1280x720、1280x800的分辨率,更多分辨率支持情况请自行测试。

800X480分辨率以上的手机都可以用。

凯立德 全3D完整版 全3D的触控体验,离线语音导航,免激活,新的配套程序。

机车版更适合驾车出行的你。

经本人国行小V测试完美运行,以下提供的都是(整包)迅雷下载地址,一次下载一次解压一次安装为你省时间,此为最新版本,请将原来老的地图包及主程序全部删除后重新安装。

同一版本的地图可共用,不用重复下载。

凯立德秋季P2038-X5B04-2621W09 PND版本的下载地址 下载地址(迅雷整包): http://kuai.xunlei.com/d/QKHVBQKWVIZL 内含最新的2621W09全3D完整版地图和主程序(解压密码:www.xxkwz.cn 去掉),解压后的NaviOne文件放在SD根目录下安装里面的主程序即可,里面的主程序是(P2038-X5B04 )可选下面的主程序(C2025-C7802)。

解压后大概2.8G左右. 此主程序(C2025-C7802)安装后显示的是凯立德图标不再是移动导航了,本人觉得好用,其它主程序自己上网搜在此就不提供了,理论上是支持步行的,: 下载地址: http://115.com/file/be8rktgn# 凯立德车机黑版C2025-C7802低速刷新车标.apk最新凯立德冬季 C2025-C7802-2721W09 3D 机车完整版下载地址(迅雷整包):http://kuai.xunlei.com/d/QZWBHPJMMBZV 内含最新版冬季2721W09完整地图(解压密:www.xxkwz.cn)解压后的NaviOne文件夹放在SD根目录下安装主程序(C2025-C7802)既可。

上面提供下载。

凯立德最新冬季版M2342-D5A04-2721J09 2D 手机完整版 下载地址(迅雷整包):http://kuai.xunlei.com/d/QVDSAHFZSIPQ 内含最新的2721J09完整地图,解压(解压密:www.xxkwz.cn)后的NaviOne文件放在SD根目录下安装里面的主程序(M2342-D5A04)即可. 该版本除了支持主流的800*480分辨率外,经测试还支持320x240、240x400、480x320、800x480、850x480、960x540、960x640等常见到的一些分辨率,甚至平板电脑1024x600、1024x768、1280x720、1280x800的分辨率,更多分辨率支持情况请自行测试。

另外普及一下凯立德是分PND手持,Car车机版和M手机版。

大家看版本号最前面的字母就知道区别了,P版是清新的绿色界面,C版是酷酷的黑色界面,M版是手机专用。

j09和w09的区别是:J开头的是普通版,W开头的是3D版。

大家根据自己的需求选择吧。

关于有些机油安装凯立德出现配置文件不存在的问题本人也在这里一并解决,把后面这个下载后解压覆盖在NAVIONE文件下既可,凯立德配置文件.rar 没有声音的下这个补丁覆盖就行了:凯立德声音补丁 http://115.com/file/be8rtljg android,版,最新,凯,立德,冬季,地图,前往,凯,

加入收藏
               

Android开发使用Dom从网络端解析xml文件

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录