当前位置: 首页 > news >正文

高端网站设计工作室小程序店铺怎么弄

高端网站设计工作室,小程序店铺怎么弄,网站开发设计报告怎么写,WordPress增加下载按钮android平台上解析xml的常见的工具有三种#xff1a;dom,sax#xff0c;pull。 第一种是DOM#xff0c; 它的特点是一次全部加载#xff0c;如果对于数据量小的情况下#xff0c;它的效率还可以#xff0c;如果XML文件很大的情况下#xff0c;速度就会慢起来。 第二种方…android平台上解析xml的常见的工具有三种dom,saxpull。 第一种是DOM 它的特点是一次全部加载如果对于数据量小的情况下它的效率还可以如果XML文件很大的情况下速度就会慢起来。 第二种方式SAX SAX是基于事件驱动的。当然android的事件机制是基于回调函数的在用SAX解析xml文档时候在读取到文档开始和结束标签时候就会回调一个事件在读取到其他节点与内容时候也会回调一个事件。 第三种方式PULL 这种方式也是基于事件驱动 的与SAX方式一样只不过PULL方式读xml回调方法返回的是数字。 下面分别使用它们解析xml文件。 在assert下放置persons.xml文件 ?xml version1.0 encodingutf-8? persons person id1 name张三/name age12/age /person person id2 name李四/name age14/age /person person id3 name王五/name age15/age /person /persons 创建Activity文件准备处理文件并显示 import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.res.AssetManager; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ListView; import android.widget.SimpleAdapter; public class XMLActivity extends Activity implements OnClickListener{ /** Called when the activity is first created. */ private Button btn_dom; private Button btn_sax; private Button btn_pull; private ListView listview; Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ btn_dom(Button) findViewById(R.id.dom); btn_sax(Button) findViewById(R.id.sax); btn_pull (Button) findViewById(R.id.pull); listview (ListView) findViewById(R.id.list); btn_dom.setOnClickListener(this); btn_sax.setOnClickListener(this); btn_pull.setOnClickListener(this); } public void onClick(View v) { // TODO Auto-generated method stub int id v.getId(); ListPerson list null; InputStream is null; AssetManager manager getAssets(); try { //读取xml文件。 is manager.open(persons.xml); } catch (IOException e) { e.printStackTrace(); } switch (id) { case R.id.dom: //使用dom解析 try { list new DomParseService().getPersonsByParseXml(is); showUI(list); } catch (Exception e) { e.printStackTrace(); } break; case R.id.sax: //使用sax解析 try { list new SAXParseService().getPersonsByParseXml(is); showUI(list); } catch (Exception e) { e.printStackTrace(); } break; case R.id.pull: //使用pull解析 try { list new PullParseService().getPersonsByParseXml(is); showUI(list); } catch (Exception e) { e.printStackTrace(); } break; default: break; } try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void showUI(ListPerson list) { ListMapString, Object data new ArrayListMapString, Object(); for (Person p : list) { MapString, Object map new HashMapString, Object(); map.put(id, p.getId()); map.put(name, p.getName()); map.put(age, p.getAge()); data.add(map); } String[] from { id, name, age }; int[] to { R.id.tv_id, R.id.tv_name, R.id.tv_age }; SimpleAdapter adapter new SimpleAdapter(this, data, R.layout.person_list_item, from, to); listview.setAdapter(adapter); } } 创建解析xml文件的接口 import java.io.InputStream; import java.util.List; public interface IXmlParseService { public ListPerson getPersonsByParseXml(InputStream is) throws Exception; } dom解析 import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import android.util.Log; public class DomParseService implements IXmlParseService { public ListPerson getPersonsByParseXml(InputStream is) throws Exception { // TODO Auto-generated method stub ListPerson list null; DocumentBuilderFactory factory DocumentBuilderFactory.newInstance(); DocumentBuilder build factory.newDocumentBuilder(); Document document build.parse(is); Element rootElement document.getDocumentElement(); NodeList nodeList rootElement.getElementsByTagName(person); if(nodeListnull||nodeList.getLength()0) { return null; } list new ArrayListPerson(); for(int i0;inodeList.getLength();i) { Person person new Person(); Element element (Element) nodeList.item(i); // 得到根节点属性id int id Integer.parseInt(element.getAttribute(id)); person.setId(id); /*得到子节点*/ NodeList childnodes element.getChildNodes(); for(int j0; jchildnodes.getLength(); j ){ Node childNode (Node)childnodes.item(j); if(childNode.getNodeType() Node.ELEMENT_NODE){ Element childElement (Element)childNode; if(name.equals(childElement.getNodeName())){ person.setName(childElement.getFirstChild().getNodeValue()); } else if(age.equals(childElement.getNodeName())){ person.setAge(new Short(childElement.getFirstChild().getNodeValue())); } } } list.add(person); } return list; } } sax解析 import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import android.os.Handler; import android.util.Log; public class SAXParseService implements IXmlParseService { public ListPerson getPersonsByParseXml(InputStream is) throws Exception { // TODO Auto-generated method stub SAXParserFactory factory SAXParserFactory.newInstance(); SAXParser parser factory.newSAXParser(); MyHandler handler new MyHandler(); parser.parse(is,handler); return handler.getList(); } private class MyHandler extends DefaultHandler { private ListPerson list; private Person person; private String currentTag; private ListPerson getList() { return list; } Override public void startDocument() throws SAXException { list new ArrayListPerson(); } Override public void endDocument() throws SAXException { super.endDocument(); } Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if(person.equals(qName)) { person new Person(); person.setId(Integer.parseInt(attributes.getValue(id))); }else if(name.equals(qName)||age.equals(qName)){ currentTag qName; } } Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); String s new String(ch,start,length); if(name.equals(currentTag)) { person.setName(s); }else if(age.equals(currentTag)) { person.setAge(Integer.parseInt(s)); } currentTag null; } Override public void endElement(String uri, String localName, String qName) { if(person.equals(qName)) { list.add(person); person null; } } } } pull解析 import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import android.util.Xml; public class PullParseService implements IXmlParseService { public ListPerson getPersonsByParseXml(InputStream is) throws Exception { // TODO Auto-generated method stub ListPerson personsnull; Person personnull; XmlPullParser parserXml.newPullParser(); parser.setInput(is, UTF-8); int eventparser.getEventType(); while(event! XmlPullParser.END_DOCUMENT){ switch(event){ case XmlPullParser.START_DOCUMENT: personsnew ArrayListPerson(); break; case XmlPullParser.START_TAG: if(person.equals(parser.getName())){ Integer personIdnew Integer(parser.getAttributeValue(0)); personnew Person(); person.setId(personId); }else if(name.equals(parser.getName())){ String personNameparser.nextText(); person.setName(personName); }else if(age.equals(parser.getName())) person.setAge(new Short(parser.nextText())); break; case XmlPullParser.END_TAG: if(person.equals(parser.getName())){ persons.add(person); personnull; } break; } eventparser.next(); } return persons; } } 运行效果如下 转载于:https://www.cnblogs.com/android-html5/archive/2011/11/26/2534097.html
http://www.huolong8.cn/news/172529/

相关文章:

  • 怎样批量做地级市网站网站在国内服务器在国外
  • 冷库网站建设前端开发需要学什么语言
  • p2p贷款网站开发网站网站开发
  • 南京做网站南京乐识好免费制作企业网站平台
  • 福州网站网页设计全景旅游网站建设
  • 维护网站的一般方法wordpress拖曳式建站
  • 做的页面好看的网站WordPress好看的博客主题有哪些
  • 做悬浮导航的网站网站内容编写方法
  • 网站建建设心的wordpress作品
  • 郴州卖房网站成都新闻最新消息
  • 建设自己的淘宝优惠券网站杭州 专业网站建设 网络服务
  • 自己做下载网站榆林网站建设电话
  • 网站建设设计软件wordpress和django哪个好
  • 硬件工程师培训机构哪家好上海seo公司排名
  • 设置网站语言百度网站地图提交
  • 网络营销推广的模式包括()遵义seo快速排名
  • 汽车配件网站模板wordpress二次元主题
  • 如何查询一个网站是否备案免费制作个人网页
  • 桂林网站建设价格h5如何做多页面网站
  • 最威海的网站建设市场营销论文4000字
  • 给网站做友情链接app产品开发流程
  • 福州市建设局网站会员卡管理系统免费版
  • 沈阳市建网站wordpress语言包下载地址
  • 物流公司网站制作模板网站做查赚钱
  • 新站网站建设青岛做一个网站多少钱
  • 个人网站的建设流程wordpress 地方门户
  • 怎样找到正规代加工网站用wordpress建站
  • 想做棋牌网站怎么做手机seo网站推广
  • 开封小吃网站建设深圳公司排名榜
  • 宁波网站推广业务艺术字转换器花体字