|
|
@@ -1,19 +1,28 @@
|
|
|
// @require WFS_URL
|
|
|
if (!WFS_URL) throw "Missing WFS_URL"
|
|
|
|
|
|
+function p5WFS_ParseFeatureFieldRecurse(tagNode) { // @returns object from xml element
|
|
|
+ var item = {}
|
|
|
+ var i = 0
|
|
|
+ for (i = 0; i < tagNode.children.length; i++) {
|
|
|
+ var fieldNode = tagNode.children[i]
|
|
|
+ if (!fieldNode.children.length) {
|
|
|
+ if (fieldNode.textContent) item[ fieldNode.localName ] = fieldNode.textContent
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (!(fieldNode.tagName in item)) item[ fieldNode.tagName ] = []
|
|
|
+ item[ fieldNode.tagName ].push( p5WFS_ParseFeatureFieldRecurse(fieldNode) )
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return item
|
|
|
+}
|
|
|
function p5WFS_ParseFeatureMember(featureMember) { // @returns object from xml element <gml:featureMemeber>
|
|
|
if (!featureMember) return null
|
|
|
if (!featureMember.children.length) return null
|
|
|
var featureNode = featureMember.children[0]
|
|
|
if (!featureNode) return null
|
|
|
if (!featureNode.children.length) return null
|
|
|
- var item = {}
|
|
|
- var i = 0
|
|
|
- for (i = 0; i < featureNode.children.length; i++) {
|
|
|
- var field = featureNode.children[i]
|
|
|
- item[ field.localName ] = field.textContent
|
|
|
- }
|
|
|
- return item
|
|
|
+ return p5WFS_ParseFeatureFieldRecurse(featureNode)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -137,4 +146,5 @@ function p5WFS_GetFeature(typeName, query) { // @returns Promise
|
|
|
}
|
|
|
|
|
|
global.p5WFS_ParseFeatureMember = p5WFS_ParseFeatureMember
|
|
|
+global.p5WFS_ParseFeatureFieldRecurse = p5WFS_ParseFeatureFieldRecurse
|
|
|
global.p5WFS_GetFeature = p5WFS_GetFeature
|