📄 staxelementparser.java
字号:
package com.esri.solutions.jitk.datasources.ogc.wfs.parsing.stax;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;
//import org.apache.log4j.Logger;
public class StaxElementParser {
//private static final Logger _logger = Logger.getLogger(StaxElementParser.class);
private Map<String, IElementParser> _delegateParsers;
public StaxElementParser() {
_delegateParsers = new HashMap<String, IElementParser>();
}
public void registerParser(String elementName, IElementParser parser) {
_delegateParsers.put(elementName, parser);
}
public void parse(InputStream is) throws XMLStreamException, ParsingException {
XMLInputFactory xmlif = XMLInputFactory.newInstance();
XMLEventReader xmler = xmlif.createXMLEventReader(is);
XMLEvent event;
while (xmler.hasNext()) {
event = xmler.nextEvent();
if (event.isStartElement()) {
String elementName = event.asStartElement().getName().getLocalPart();
//_logger.debug("Element " + elementName + " encountered");
if (_delegateParsers.containsKey(elementName)) {
//_logger.debug(elementName + " encountered, delegating parsing");
IElementParser parser = (IElementParser) _delegateParsers.get(elementName);
parser.parse(xmler, event);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -