[OpenLayers-Users] XML Parsing via OpenLayers?
Bart van den Eijnden (OSGIS)
bartvde at osgis.nl
Tue Oct 7 13:54:45 EDT 2008
Maybe you can try and create your own Format class, something like:
/**
* @requires OpenLayers/Format/XML.js
*
*/
OpenLayers.Format.MyFormat = OpenLayers.Class(
OpenLayers.Format.XML, {
initialize: function(options) {
OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
this.options = options;
},
read: function(data) {
if(typeof data == "string") {
data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
}
// do your stuff here, it's just an example
var root = data.documentElement;
var children = root.childNodes;
for(var i = 0; i < children.length; ++i) {
childNode = children[i];
var nodeName = childNode.nodeName;
if (nodeName == 'Toolbar') {
this.parseToolbar(childNode);
}
}
// return your array here
},
CLASS_NAME: "OpenLayers.Format.MyFormat"
});
And then:
OpenLayers.loadURL(myURL, "", null, function(response) {
var format = new OpenLayers.Format.MyFormat();
var myArray = format.read(response.responseXML ||
response.responseText);
console.log(myArray);
});
Best regards,
Bart
Maps-R-us wrote:
> Thank you Bart,
>
> I actually do this in my loadSuccess function:
>
> function loadSuccess(request) {
>
> updateStatus("loaded");
> if(!request.responseXML.documentElement) {
> doc = format.read(request.responseText);
> } else {
> doc = request.responseXML;
> }
> }
>
> Is this correct?
>
> M
>
> Bart van den Eijnden wrote:
>
>> You need to parse the XML in the loadSuccess function, check
>> examples/GMLParser.html for an example.
>>
>> Best regards,
>> Bart
>>
>> Maps-R-us wrote:
>>
>>> Hi there,
>>>
>>> I would like to retrieve elements in an xml file based on tag name and
>>> populate an array. Here is a sample of the XML:
>>>
>>> <users>
>>> <user>
>>> <fullname>Test</fullname>
>>> <ID>3400</ID>
>>> <lat>0.003926753994724706</lat>
>>> <lon>0.00446319580078125</lon>
>>>
>>> <image>http://40.media.vimeo.com/d1/5/35/85/81/portrait-35858134.jpg</image>
>>> <floor>3</floor>
>>> </user>
>>> </users>
>>>
>>> My code fails on the getElementsByNameNS()
>>>
>>>
>>> var format = new OpenLayers.Format.XML();
>>> var doc = null;
>>> var url = "officedata.xml";
>>> OpenLayers.loadURL(url, null, null, loadSuccess, loadFailure);
>>> var attributeValue = [];
>>> var attributeValue[1] = format.getElementsByTagNameNS(doc,
>>> '*','fullname');
>>> alert (attributeValue[1]);
>>>
>>> Any ideas?
>>>
>>> Thank you in advance,
>>>
>>> M
>>>
>>>
>>>
>> --
>> Bart van den Eijnden
>> OSGIS, Open Source GIS
>> bartvde at osgis.nl
>> http://www.osgis.nl
>>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
>>
>>
>
>
--
Bart van den Eijnden
OSGIS, Open Source GIS
bartvde at osgis.nl
http://www.osgis.nl
More information about the Users
mailing list