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");
}
}