XML解析ide
XML可扩展标记语言spa
Sax:接口
事件驱动型解析接口事件
原理
对文档顺序扫描,对事件驱动的解析过程,文档
事件get
开始解析io
开始解析根标签class
开始解析标签test
解析到数据原理
结束解析标签
结束解析根标签
结束解析
工厂模式
SaxParserFactory->SaxParser->SaxReader
核心代码
Stringstr ="<doc><p>test</p></doc>";
SAXParserFactoryfatory =SAXParserFactory.newInstance();
try{
XMLReader reader = fatory.newSAXParser().getXMLReader();
reader.setContentHandler(newXmlHandler());
reader.parse(newInputSource(newStringReader(str)));
}catch(Exception e) {
//TODOAuto-generated catch block
e.printStackTrace();
}
classXmlHandlerextendsDefaultHandler
{
@Override
publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException {
//TODOAuto-generated method stub
Log.i("","------------characters:"+newString (ch));
}
@Override
publicvoidendDocument()throwsSAXException {
//TODOAuto-generated method stub
Log.i("","------------endDocument");
}
@Override
publicvoidendElement(String uri, String localName, String qName) throwsSAXException {
//TODOAuto-generated method stub
Log.i("","------------endElement");
}
@Override
publicvoidstartDocument()throwsSAXException {
Log.i("","------------startDocument");
}
@Override
publicvoidstartElement(String uri, String localName, String qName, Attributesattributes) throwsSAXException {
Log.i("","------------startElement");
}
}