staxelementparser.java
来自「esri的ArcGIS Server超级学习模板程序(for java)」· Java 代码 · 共 49 行
JAVA
49 行
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 + =
减小字号Ctrl + -
显示快捷键?