`

解析网络xml,并解决乱码问题

 
阅读更多

1.网络接口

private final static String SEARCH_LOCATION_ADDRESS = "http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=";

 

2.查询

try
				{
					URL url = new URL(SEARCH_LOCATION_ADDRESS + userInput);//包装接口地址
					
					HttpURLConnection httpURLConnection = null;
					
					httpURLConnection = (HttpURLConnection)url.openConnection();
					
					httpURLConnection.setRequestMethod("POST");
					
					httpURLConnection.setDoOutput(true);//上传数据
					
					InputStream inputStream = httpURLConnection.getInputStream();//获取返回的数据流
					
					InputStreamReader isr = new InputStreamReader(inputStream, "gbk");//一定要在这个地方才不会乱码(utf-8,gb2312)
					
					BufferedReader br = new BufferedReader(isr);//利用BufferedReader将流转为String
					
					String result = "";
					
					String temp;
					
					while((temp = br.readLine()) != null)
					{
						result = result + temp;
					}
					
					String location = "";
					location = getStringFromXml(result);//将字符串传递过去,获取位置
					
					Toast toast = Toast.makeText(FindNumberActivity.this, location, Toast.LENGTH_LONG);
					toast.setGravity(Gravity.TOP, 0, 0);
					toast.show();
					
					System.out.println("查询执行完毕!");
					
				}
				catch (MalformedURLException e)
				{
					e.printStackTrace();
				} 
				catch (IOException e) 
				{
					e.printStackTrace();
				} 
			}

 

 

3.从xml中将需要的标签中的内容解析出来

/**
	 * 将xml字符串解析出来,返回地点信息
	 * */
	public String getStringFromXml(String str) 
	{
	
		String result = "";
		
		ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(str.getBytes());
		XmlPullParser parser = Xml.newPullParser();
		try {
			    parser.setInput(tInputStringStream, "UTF-8");
		
	        int eventType = 0;
		    eventType = parser.getEventType();

			while (eventType != XmlPullParser.END_DOCUMENT) 
			{
	
				switch (eventType) 
				{
	
					case XmlPullParser.START_DOCUMENT:// 文档开始事件,可以进行数据初始化处理
						
						break;
		
					case XmlPullParser.START_TAG:// 开始元素事件
		
						String name = parser.getName();
		
						if (name.equals("location")) //匹配到location这个标签
						{
							result = parser.nextText().toString();//将标签中的内容读取出来,不是getText()!!!
							
							System.out.println("location解析出来啦:" + result);
							
						}
		
						
						break;
		
					case XmlPullParser.END_TAG:// 结束元素事件
		
						break;
		
				}
		
					eventType = parser.next();
	
			}
			
		}
		 catch (XmlPullParserException e) 
		 {
			 e.printStackTrace();
		 }
		 catch (IOException e) 
		 {
			 e.printStackTrace();
		 }
		return result;//将地址返回
	
	} 
 

 

 

分享到:
评论

相关推荐

    解决读取XML元素时的中文乱码的程序

    具体步骤可能包括使用编程语言提供的XML处理库,设置正确的编码,然后读取、解析XML文件,验证中文元素是否正确显示。如果一切正常,说明解决方案有效。 总的来说,解决XML文件中文乱码问题需要对字符编码有深入的...

    JAXB乱码问题解决

    当XML文件以UTF-8编码存储,包含中文字符,而Java程序运行环境采用的不是UTF-8编码,反序列化过程中,XML数据会被按照错误的编码解析,导致中文字符无法正确显示,从而产生乱码。在上述代码中,可以看到反序列化过程...

    dom4j 输出XML时中文乱码解决

    Dom4J 输出 XML 时中文乱码解决方案 Dom4J 是一个流行的 Java 库,用于解析和生成 XML 文档。然而,在使用 Dom4J 输出 XML 文档时,中文字符可能会出现乱码问题。这是因为 Dom4J 的默认编码方式可能不支持中文字符...

    乱码问题的解决

    "乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...

    解决jbpm中gpd.xml的中文乱码

    以下是如何解决jbpm中gpd.xml中文乱码问题的详细步骤和相关知识点: 首先,我们需要理解的是字符编码的基础知识。在计算机中,文本是以二进制形式存储的,而字符编码如UTF-8、GBK等则规定了每个字符对应的二进制...

    Dom4j解析XML及中文问题

    本文将深入探讨如何使用Dom4j解析XML以及解决中文乱码的问题。 首先,让我们了解Dom4j的基本用法。在解析XML文件时,通常会使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过这...

    flex读取xml乱码的解决方法

    在探讨“Flex读取XML乱码的解决方法”这一主题时,我们首先需要理解几个关键概念:Flex框架、XML文件以及编码问题。Flex是一种用于构建跨平台桌面应用程序和移动应用程序的强大框架,它由Adobe Systems开发并开源。...

    maven-javadoc-plugin 中文 注释 API 解决乱码 pom xml

    ### Maven-javadoc-plugin 中文注释 API 解决乱码及时间问题详解 #### 一、背景介绍 在软件开发过程中,API文档对于提高代码可读性、方便团队成员之间的交流至关重要。Maven作为一款强大的自动化构建工具,在项目...

    java web开发解决乱码问题

    ### Java Web 开发中解决乱码问题的全面指南 #### 一、乱码问题概述 在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在...

    jsp乱码解决超酷,通过web.xml配置

    在开发Java Web应用程序时,经常遇到的一个问题是字符编码问题,特别是在使用JSP(JavaServer Pages)处理用户...将这个文件部署到`src`目录下的相应包,并正确配置`web.xml`,就可以有效地避免JSP页面出现乱码问题。

    Flex解决乱码问题

    本文将详细介绍如何解决Flex应用程序在不同浏览器上出现的中文乱码问题,并确保所有用户都能看到正确的文本。 ### 一、问题背景 Flex是一种用于构建和部署跨平台桌面和Web应用程序的开源框架。由于Flex应用是基于...

    Ajax中文乱码问题解决方案

    本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...

    拦截器解决中文乱码问题

    此外,对于前后端分离的应用,前端也需要确保其请求编码与后端保持一致,否则仅靠后端的拦截器可能无法完全解决问题。 总的来说,理解字符编码原理,结合拦截器的灵活运用,可以有效地防止和解决Web应用中的中文...

    解决post get 请求乱码问题

    解决 POST GET 请求乱码问题 在 Web 开发中,POST 和 GET 请求可能会出现乱码问题,导致中文参数无法正确传输和解析。今天,我们将讨论如何解决 POST 和 GET 请求乱码问题。 解决 POST 请求乱码问题 在 Spring ...

    使用过滤器解决中文乱码问题

    本文将详细讲解如何利用过滤器来解决中文乱码问题。 1. **理解中文乱码** 中文乱码通常是因为字符编码不一致导致的。在计算机系统中,字符被编码成二进制表示,不同的编码标准(如GBK、UTF-8等)对同一字符有不同...

    解析XML数据

    在本文中,我们将深入探讨XML的基本概念、解析XML数据的方法以及在实际应用中可能遇到的问题,比如乱码问题。 XML的结构: XML文档由一系列的元素构成,每个元素都有开始标签和结束标签,例如 `<tag>` 和 `</tag>`...

    java获取乱码问题

    本文将详细介绍如何通过修改`server.xml`配置文件来解决Java应用中出现的乱码问题,并对涉及到的相关知识点进行深入探讨。 #### 一、乱码问题背景 在Java Web开发中,客户端通过HTTP协议发送请求到服务器端,而...

    http file server 2.84修改模板解决中文乱码问题

    本文将详细解析HTTP文件服务器2.84版本中如何通过修改模板来解决这一问题,以确保中文界面、注释以及上传文件的正常显示。 首先,我们需要理解为什么会出现中文乱码。这通常与字符编码设置有关。HTTP文件服务器默认...

    jxl 读取xml 解决中文乱码后的jar包

    在原jxl 包上解决中文乱码,在jdk1.4以上读取中文正常

    解决乱码问题

    ### 解决乱码问题:Java与UTF-8编码详解 #### 一、理解乱码问题 乱码,通常指的是在程序处理过程中,由于字符编码不一致导致的文字显示错误。在Java开发中,尤其是在Web开发环境下,乱码问题尤为常见,主要发生在...

Global site tag (gtag.js) - Google Analytics