来源:J2ME开发网
个人研究手机浏览器也有一段时间了,基本流程也算清楚!今天给大家发个帖,总结一点东西,后面会慢慢的继续跟帖的,希望大家能够支持!
浏览器开发,重要的一个环节就是解析页面,生成相应的控件!
主要使用的是开源的 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 = "
some xml";
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 ){
}