SAX解析xml文件
来源:互联网 发布:it时代是什么 编辑:程序博客网 时间:2024/04/28 09:59
public class XMLsaxActivity extends Activity { /** Called when the activity is first created. */Button sax_xml = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sax_xml = (Button)findViewById(R.id.sax_xml); sax_xml.setOnClickListener(new MyContentHandlerListener()); } class MyContentHandlerListener implements OnClickListener{@Overridepublic void onClick(View v) {try {DownloadHelper dh = new DownloadHelper();String strFile = dh.download("http://10.0.2.2:8080/test.xml");System.out.println(strFile);SAXParserFactory spfactory = SAXParserFactory.newInstance(); XMLReader reader = spfactory.newSAXParser().getXMLReader();reader.setContentHandler(new MyContentHandler());reader.parse(strFile);} catch (Exception e) {e.printStackTrace();} } }}
public class DownloadHelper {URL url = null;HttpURLConnection httpURLConnection = null;String line = null;StringBuffer sb = new StringBuffer();BufferedReader br = null;public String download(String newUrl){try {url = new URL(newUrl);httpURLConnection = (HttpURLConnection)url.openConnection();br = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));while((line=br.readLine())!=null){sb.append(line);System.out.println(line);}} catch (IOException e) {e.printStackTrace();}return null;}}
public class MyContentHandler extends DefaultHandler {String servlet,servlet_name,servlet_class;String tagName;@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {//super.characters(ch, start, length);System.out.print(ch.toString());}@Overridepublic void endDocument() throws SAXException {System.out.println("-----------end-------------");}@Overridepublic void endElement(String namespaceUrl, String localName, String qName)throws SAXException {//super.endElement(namespaceUrl, localName, qName);System.out.println(localName);}@Overridepublic void startDocument() throws SAXException {System.out.println("-----------start-------------");}@Overridepublic void startElement(String namespaceUrl, String localName, String qName,Attributes attributes) throws SAXException {//super.startElement(uri, localName, qName, attributes);tagName = localName;System.out.print(tagName);if(tagName.equals("servlet_class")){for(int i = 0; i < attributes.getLength();i++){System.out.println(attributes.getLocalName(i)+"="+attributes.getValue(i));}}}}
在这里需要注意的就是SAX在解析文档的时候根据顺序:
startDocument()---startElement()----characters()---eneElement()---characters()----startElement()----characters()---endElement()---等这样循环的,直到EndDocument()结束整个文档的解析。在执行完endElement()之后并不是完成这个标签的解析,而是继续解析内容,但是返回的是空格(不是null),再继续startElement() 。这个在项目开发中需要注意的
- xml文件解析-SAX
- sax解析xml文件
- SAX解析xml文件
- SAX解析XML文件
- SAX解析XML文件
- SAX解析XML文件
- SAX解析XML文件
- SAX解析xml文件
- SAX解析xml文件
- XML文件解析 sax
- SAX解析xml文件
- SAX解析XML文件
- SAX解析XML文件
- SAX解析XML文件
- sax 解析xml文件
- xml文件Sax解析
- SAX 解析XML 文件
- SAX 解析Xml文件
- 使用Maven构建eclipse中的web工程
- test
- java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused
- 数据量大了,服务器运行的慢了,怎么解决?
- jQuery中bind、live和delegate的区别
- SAX解析xml文件
- 简单的conky配置文件
- 概要设计与详细设计的区别
- C# MD5 加密 string->string
- MySQL存储过程。。。
- C语言标准库函数 qsort 详解
- 调试makefile 收藏
- Ubuntu 10.4下安装source navigator 一步一步教你如何安装
- 大三下学期的我