[OpenLayers-Users] XML Parsing via OpenLayers?
Maps-R-us
mlaudon at laudontech.com
Tue Oct 7 14:13:27 EDT 2008
Thanks Bart,
I will give that a try. Openlayers sure requires a lot more code than the
Google Maps API XML parser!
Cheers,
Mark
Bart van den Eijnden wrote:
>
> 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
>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
>
--
View this message in context: http://www.nabble.com/XML-Parsing-via-OpenLayers--tp19861923p19864105.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list