从电脑里面到的是一个xml文件
必须先要进行解析,解析用了两种,一种是xml解析,一种是json解析。xml大家都知道,json是什么呢,其实它是类似于数组方式存储的字符串,也就是一段文本。
下面是案例:
一般错误都是URL地址写错了导致连接出现问题。所以这里要注意。
其次一定要记得配权限。
package com.icss.test_pc_connection_mobile;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xml.sax.SAXException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.util.Log;
import android.util.Xml;
public class XmlParserUtil {
/**
* SAX解析
*/
public static List<Person> getListFromWebBySax(InputStream inputStream)
throws ParserConfigurationException, SAXException, IOException {
List<Person> list = null;
// 业务
// 1. 创建SAX解析器工厂
SAXParserFactory spf = SAXParserFactory.newInstance();
// 2. 通过工厂拿到解析 器
SAXParser sp = spf.newSAXParser();
// 3. 解析 器加流及handler对象来解析
PersonHandler sxh = new PersonHandler();
sp.parse(inputStream, sxh);
// 5. handler中取出list
list = sxh.getList();
// 4. 关闭流
inputStream.close();
return list;
}
/**
* json解析
*
* @throws JSONException
*/
public static List<Person> getListFromWebByJson(InputStream inputStream)
throws ParserConfigurationException, SAXException, IOException,
XmlPullParserException, JSONException {
List<Person> list = null;
Person s = null;
// 从流中读取数据
byte[] b = new byte[1024];
//du dao liu
inputStream.read(b);
//ba liu change String
String str = new String(b, "utf-8");
JSONArray ja = new JSONArray(str);
for (int i = 0; i < ja.length(); i++) {
JSONObject jo = (JSONObject) ja.get(i);
s.setId(jo.getInt("id"));
s.setName(jo.getString("name"));
s.setAge(jo.getInt("age"));
list.add(s);
}
inputStream.close();
return list;
}
/**
* pull解析
*/
public static List<Person> getListFromWebByPull(InputStream inputStream)
throws ParserConfigurationException, SAXException, IOException,
XmlPullParserException {
List<Person> list = null;
Person s = null;
// 一种,直接pull
// XmlPullParserFactory f=XmlPullParserFactory.newInstance();
// XmlPullParser p=f.newPullParser(); //pull解析器
// 二种, android对pull的支持
XmlPullParser p = Xml.newPullParser(); // 通过android的pull支持创建一个pull解析器
p.setInput(inputStream, "utf-8");
int eventType = p.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
Log.i("localName", "" + p.getName());
// 每一个节点业务
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Person>();
break;
case XmlPullParser.START_TAG:
if ("person".equals(p.getName())) {
s = new Person();
s.setId(new Integer(p.getAttributeValue(null, "id")));
} else if ("name".equals(p.getName())) {
if (s != null) {
s.setName(p.nextText());
}
} else if ("age".equals(p.getName())) {
if (s != null) {
s.setAge(new Integer(p.nextText()));
}
}
break;
case XmlPullParser.END_TAG:
if ("person".equals(p.getName()) && s != null) {
list.add(s);
}
break;
}
eventType = p.next(); // 到下一个节点
}
return list;
}
}
上面是两种解析方式。其他代码在附件中。
分享到:
相关推荐
总结来说,手机蓝牙与PC机通讯涉及到蓝牙配对、UUID匹配、服务器端的监听和客户端的连接,以及通过InputStream和OutputStream进行数据交换。在Android设备上,还可以结合重力感应API来感知设备的动作并传输相关数据...
1. **连接手机与电脑**:使用USB数据线将手机连接至电脑,并在手机上依次打开“系统设置”>“无线和网络”>“绑定与便携式热点”>启用“USB绑定”。此时,电脑的网络连接窗口中应该会出现一个新的本地连接,我们可以...
在当今的互联网时代,手机与PC之间的数据交互变得越来越频繁,而Python Flask框架提供了一个轻量级且强大的解决方案,使得开发者可以构建自己的服务器来实现这种通信。Flask是Python的一个微型Web服务框架,它允许...
在这个项目中,STM32F750开发板被用来创建一个能同时处理多个PC客户端连接的TCP服务器。下面我们将详细探讨这个Demo中的关键技术点。 首先,STM32F750是一款高性能的微控制器,基于ARM Cortex-M7内核,具有丰富的...
综上所述,手机端与服务器端建立通信,从网络获取数据这一过程涵盖了网络协议、请求库选择、API设计、数据格式、异步处理、权限管理、错误处理、数据缓存以及安全性等多个方面。理解并熟练掌握这些知识点,是开发...
本文介绍了如何使用Python的Flask框架和AppInventor工具实现智能手机与PC服务器之间的通信。以下是文章中提出的关键知识点。 知识点一:移动互联网的发展和AppInventor工具的应用 移动互联网技术的快速发展导致了...
随着移动互联网的发展,越来越多的应用场景需要实现手机端与PC端的数据交互。其中一种常见需求是通过手机访问运行在PC上的Tomcat服务器。这不仅可以用于开发调试,还可以在特定环境下作为一种临时解决方案。 #### ...
在工业自动化领域,PC机(个人计算机)与PLC(可编程逻辑控制器)之间的通信是至关重要的,因为这使得上位机(PC)能够监控、控制和数据采集下位机(PLC)所管理的设备。本文将深入探讨PC机与PLC串口通信的相关知识...
在这个场景下,Android手机作为客户端(Client),而PC作为服务器端(Server),它们通过WiFi网络建立连接并交换数据。 首先,我们来详细了解一下Socket通信的基本原理: 1. **服务器端(PC)**: - 创建...
本文将深入探讨如何通过USB接口实现手机端摄像头数据的采集与传输到PC的过程,这涉及到的主要技术包括安卓系统的API调用、摄像头操作、USB通信协议以及客户端-服务器模型的应用。 首先,我们需要了解的是手机端...
在Android与PC之间建立Socket连接时,我们可以将Android设备视为客户端(Client),PC视为服务器(Server)。客户端向服务器发起连接请求,服务器接收并响应这个请求,从而形成一个数据传输的通道。 要实现这个功能...
2. **数据读取错误**:检查 PLC 中的数据地址是否正确,确保 OPC 服务器与 PLC 的数据格式一致。 3. **性能问题**:优化通讯配置,减少不必要的数据交换,提高通信效率。 4. **安全性问题**:确保使用了适当的安全...
OPCUA(面向服务的架构,OPC统一架构)是一种开放的标准通信协议,它被广泛应用于工业自动化领域,特别是PLC(可编程逻辑控制器)与PC机之间的数据交换。本实例源码着重展示了如何实现这一通信机制,为开发者提供了...
- PC机:通常使用有线或无线网络连接,可以通过Windows的网络和共享中心进行网络设置,包括静态或动态获取IP地址。 - WinCE设备:在WinCE系统中,需要手动配置网络参数,这通常通过设备的网络管理工具完成。设置...
综上所述,这个"两台PC机通信程序"是一个基础的Java网络编程示例,涉及了Socket通信、服务器端与客户端的逻辑设计,以及网络数据传输的基本原理。通过学习和理解这个程序,开发者可以进一步掌握Java在网络编程中的...
总结来说,手机与PC间的视频监控通过内网实现,关键在于正确配置网络环境、在PC上设置视频服务器,并在手机端找到合适的应用进行连接。理解这些基础知识,你就能轻松搭建起自己的视频监控系统。
PC端程序通常作为服务器端,监听特定的UDP端口号,等待来自手机的连接和数据。而手机端程序则作为客户端,负责发起连接请求,发送信息到PC。 “输入发送信息后,电脑收到消息自动取得手机的地址和端口”,这表明在...
本篇文章将深入探讨如何利用Java编程语言通过SNMP协议来获取交换机设备上的详细信息,包括PC机的MAC地址、IP地址以及连接的端口号。 首先,SNMP是一种应用层协议,它允许网络管理员远程收集和配置网络设备的数据。...
然后,创建一个新的设备,与服务器建立连接。在执行此操作前,确保【Server PC】上的KEPServerEX处于运行状态。 通过以上步骤,两台PC之间的OPC UA通信链路已经建立。这种配置允许数据在两者之间透明地流动,支持...