/** @param wrappedReader */ public WiretapXMLReaderWrapper(final XMLReader wrappedReader) { this.wrappedReader = wrappedReader; contentHandler = wrappedReader.getContentHandler(); try { lexicalHandler = (LexicalHandler) wrappedReader.getProperty("http://xml.org/sax/properties/lexical-handler"); } catch (SAXNotRecognizedException e) { } catch (SAXNotSupportedException e) { } }
private void parseXmlSax(String responseData) { try { // SAXparser를 만들어주는 factory에 newInstance()를 호출 SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser sp = factory.newSAXParser(); // 실제로 xml을 읽어들이는 역할을 하는 xmlreader 타입의 xr로 읽어들인 xml 참조 XMLReader xr = sp.getXMLReader(); // RankHandle이라는 것을 선언해줌과 동시에 xr에 set해준다. xr.setContentHandler(new RankHandle()); xr.parse(new InputSource(new StringReader(responseData))); RankHandle rh = (RankHandle) xr.getContentHandler(); // RankHandle에 있는 rh의 posts 리스트를 arraylist에 담는다. 이곳에서 10번을 돌아 실시간 검색 // 10개를 만들어 내는 것이다. ArrayList<RankPostDTO> list = rh.getPosts(); makeJson(list); } catch (Exception e) { } }
/* 287: */ /* 288: */ public void setXMLReader(XMLReader xmlReader) /* 289: */ { /* 290:475 */ setContentHandler(xmlReader.getContentHandler()); /* 291:476 */ setDTDHandler(xmlReader.getDTDHandler()); /* 292:477 */ setEntityResolver(xmlReader.getEntityResolver()); /* 293:478 */ setErrorHandler(xmlReader.getErrorHandler()); /* 294: */ }