📄 featurememberparser.java
字号:
package com.esri.solutions.jitk.datasources.ogc.wfs.parsing;
import java.util.ArrayList;
import java.util.List;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;
import com.esri.solutions.jitk.datasources.ogc.gml.parsing.GMLGeometryParser;
import com.esri.solutions.jitk.datasources.ogc.wfs.FeatureField;
import com.esri.solutions.jitk.datasources.ogc.wfs.FeatureMember;
import com.esri.solutions.jitk.datasources.ogc.wfs.parsing.stax.IElementParser;
import com.esri.solutions.jitk.datasources.ogc.wfs.parsing.stax.ParsingException;
public class FeatureMemberParser implements IElementParser {
protected String _layer = null;
protected List<FeatureMember> _fms = new ArrayList<FeatureMember>();
protected GMLGeometryParser _gmlGeometryParser = new GMLGeometryParser();
public FeatureMemberParser() {
}
public void setLayerName(String layer) {
_layer = layer;
}
public void parse(XMLEventReader xmler, XMLEvent currentEvent) throws XMLStreamException, ParsingException {
XMLEvent event;
String currentElementName = "";
FeatureMember fm = new FeatureMember();
while (xmler.hasNext()) {
event = xmler.nextEvent();
if (event.isStartElement()) {
currentElementName = event.asStartElement().getName().getLocalPart();
// Parse GML shape
if (currentElementName.equalsIgnoreCase("Shape")) {
_gmlGeometryParser.parse(xmler, currentEvent);
fm.setShapeField(_gmlGeometryParser.getGeometry());
}
}
if (event.isCharacters()) {
// Parse feature elements (column values)
if (!currentElementName.equals(_layer)){
String data = event.asCharacters().getData();
addFieldValue(fm, currentElementName, data);
}
}
if (event.isEndElement()) {
String elementName = event.asEndElement().getName().getLocalPart();
if (elementName.equals("featureMember")) {
_fms.add(fm);
break;
}
}
}
}
public void addFieldValue(FeatureMember fm, String fieldName, String fieldValue) {
FeatureField ff = new FeatureField();
ff.setName(fieldName);
ff.setValue(fieldValue);
fm.addFeatureField(ff);
}
public List<FeatureMember> getFeatureMembers() {
return _fms;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -