hmm. I use a custom WFSCapabilities parser but dont otherwise have an issue. Have checked your getcaps call directly as a browser URL (or looked at the return in the NET tab). My code is like this: (It is within the context of an ExtJS form but you should see the essentials okay. It loads a store with a list of WFS layers).

function wfsGetCapabilities(node) {
    var url = node.data.sQURL;
    if (url.indexOf('?') < 0) url += '?';
    if ((url.indexOf('?') + 1) < url.length) url += '&';
    if (url != '?') {
        Ext.Ajax.request({
            url: 'FileHandling/adminproxy.jsp',
            success: addWfsLayers,
            params: {
                url: url + 'service=WFS&request=GetCapabilities'
            }
        });
    }
}

function addWfsLayers(response) {
    var wfsGetCapabilitiesParsed = parseWFS(response.responseXML);
    var node = getSelNode();
    var layerData = [];
    var layerToSelect = '';
    for (i=0; i<wfsGetCapabilitiesParsed.featureTypes.length; i++) {
        var layer = wfsGetCapabilitiesParsed.featureTypes[i];
        layerData[i] = [layer.prefix + ':' + layer.name,layer.title];
if (layer.name == node.data.sQFeatureType) layerToSelect = layer.title;
    }
    Ext.getStore('AvailableSpatialLayers').loadData(layerData);
    if (layerToSelect != '') {
var spatialListCombo = Ext.ComponentQuery.query('libraryPanel libraryLayerDetailsPanel spatialListCombo')[0];
        spatialListCombo.setValue(layerToSelect);
        spatialListCombo.fireEvent('select',spatialListCombo,'');
    }
}

function parseWFS(xmlDoc) {
    var featureTypeList = {
        featureTypes: []
    };
    for (i=0; i<xmlDoc.documentElement.childElementCount; i++) {
        var elem = xmlDoc.documentElement.childNodes[i];
        if (elem.localName=='FeatureTypeList') {
            for (k=0; k<elem.childElementCount; k++) {
                var childElem = elem.childNodes[k];
                if (childElem.localName=='FeatureType') {
                    var featureType = {};
                    for (j=0; j<childElem.childElementCount; j++) {
                        var field = childElem.childNodes[j];
                        var name = field.localName;
                        var text = field.textContent;
                        if (name=='Name') {
                            var parts = text.split(':');
                            featureType.name = parts.pop();
                            featureType.prefix = parts.pop();
                        } else if (name=='Title') featureType.title = text;
else if (name=='DefaultSRS') featureType.srs = text;
                    }
                    featureTypeList.featureTypes.push(featureType);
                }
            }
        }
    }
    return featureTypeList;
}


Notice: This email and any attachments are confidential.
If received in error please destroy and immediately notify us.
Do not copy or disclose the contents.

_______________________________________________
Users mailing list
us...@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to