SAX 파서를 처음 사용하는 사람이 없으니 까 누구나 실행 방법을 말해 줄 수 있습니다. (jdk)를 실행하는 데 필요한 것은 무엇입니까? android xml과 normal을 모두 파싱 할 수있는 색소폰 파서를 사용할 수 있습니까? xmlSax 파서를 실행 중
0
A
답변
0
SAX 파서는 XML 문서를 구문 분석하는 동안 발생하는 이벤트에 해당하는 특정 콜백 함수를 구현하는 ContentHandler
개체를 생성하여 구현됩니다. 예를 들어, 파서가 문서의 파싱을 시작할 때 startDocument
메서드가 호출되고 새 태그를 발견하면 startElement
이 호출됩니다. 마찬가지로 파서가 태그 나 문서의 끝을 찾거나 유효하지 않은 시퀀스가 발견되면 endElement
, endDocument
및 error
이 호출됩니다.
This example은 SAX 파서를 사용하는 방법을 보여줍니다. 중요한 점은 MyHandler
클래스가 인터페이스를 구현하는 DefaultHandler
클래스를 확장하고 각 콜백 메소드의 빈 구현을 재정의한다는 것입니다.
Java SAXParser
클래스는 XML 문서를 구문 분석하는 방법을 알고 있지만 관심 대상을 발견하면 처리기 클래스를 사용하여 처리 할 방법을 알아야합니다. DefaultHandler
클래스는 재미있는 것에 집중할 수 있도록 확장 할 수있는 도우미 구현입니다.
0
원하는 경우 DefaultHandler를 확장하는 대신 ContentHandler를 직접 사용할 수 있습니다 (아래 참조). 이 수준의 SAX 파싱은 Android 플랫폼에서 사용할 수 있다고 생각합니다.
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.XMLReader;
public class Demo {
public static void main(String[] args) throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
xr.setContentHandler(new MyContentHandler());
xr.parse("input.xml");
}
private static class MyContentHandler implements ContentHandler {
public void setDocumentLocator(Locator locator) {
}
public void startDocument() throws SAXException {
}
public void endDocument() throws SAXException {
}
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
}
public void endPrefixMapping(String prefix) throws SAXException {
}
public void startElement(String uri, String localName, String qName,
System.out.println("START " + qName);
}
public void endElement(String uri, String localName, String qName)
throws SAXException {
System.out.println("END " + qName);
}
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println(new String(ch, start, length));
}
public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
}
public void processingInstruction(String target, String data)
throws SAXException {
}
public void skippedEntity(String name) throws SAXException {
}
}
}
THANKS maerics는 로컬 XML 파일을 구문 분석하는 방법을 알려줄 수 있습니다. 그렇다면 defaulthandler 클래스는 필요하지 않습니다. – apoorva