| 个人研究手机浏览器也有一段时间了,基本流程也算清楚!今天给大家发个帖,总结一点东西,后面会慢慢的继续跟帖的,希望大家能够支持!
浏览器开发,重要的一个环节就是解析页面,生成相应的控件!
主要使用的是开源的 kxml解析器 核心代码如下:
要使用kxml,我们必须首先得到一个XmlParser实例,它用Reader作为构造器的参数: try { Reader r = .....; XmlParser parser = new XmlParser( r ); } catch( java.io.IOException e ){ // handle exception.... }
如果你的xml文档存储在String内的话你可以使用ByteArrayInputStream和InputStreamReader: String xml = "<a>some xml</a>"; ByteArrayInputStream bin = new ByteArrayInputStream( xml.getBytes() ); XmlParser parser = new XmlParser( new InputStreamReader( bin ) ); 而如果从网上接收数据的时候可以这样: HttpConnection conn = .....; InputStreamReader doc = new InputStreamReader( conn.openInputStream() ); XmlParser parser = new XmlParser( doc ); 得到parser实例后我们就可以调用read方法进行解析了,read方法会返回一个ParseEvent,通过判断他的类型我们就可以解析xml了。 try { boolean keepParsing = true; while( keepParsing ){ ParseEvent event = parser.read(); switch( event.getType() ){ case Xml.START_TAG: ..... // handle start of an XML tag break; case Xml.END_TAG: ..... // handle end of an XML tag break; case Xml.TEXT: ..... // handle text within a tag break; case Xml.WHITESPACE: ..... // handle whitespace break; case Xml.COMMENT: ..... // handle comment break; case Xml.PROCESSING_INSTRUCTION: ..... // handle XML PI break; case Xml.DOCTYPE: ..... // handle XML doctype break; case Xml.END_DOCUMENT: ..... // end of document; keepParsing = false; break; } } } catch( java.io.IOException e ){ }
mars0319 by 2008-4-28 2:20:00 阅读全文 | 回复(1) | 引用通告 | 编辑
|