move xml helper functions into Util.js and adapt code to use them-- is this where we want to keep them? do we want to keep them? tests need to be written.

git-svn-id: http://svn.openlayers.org/trunk/openlayers@292 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
euzuro
2006-05-23 17:35:16 +00:00
parent 123b460932
commit ad41a1df69
3 changed files with 79 additions and 74 deletions

View File

@@ -31,25 +31,25 @@ OpenLayers.Feature.MetaCarta.prototype= {
initialize: function(fNode) { initialize: function(fNode) {
this.listeners = new Object(); this.listeners = new Object();
var docpt = OpenLayers.getNodes(fNode, "docpoint")[0]; var docpt = OpenLayers.Util.getNodes(fNode, "docpoint")[0];
this.fid = docpt.getAttribute('fid'); this.fid = docpt.getAttribute('fid');
this.id = this.fid; this.id = this.fid;
var node = OpenLayers.getNodes(docpt, "position")[0]; var node = OpenLayers.Util.getNodes(docpt, "position")[0];
node = OpenLayers.getNodes(node, "gml:Point")[0]; node = OpenLayers.Util.getNodes(node, "gml:Point")[0];
this.srsName = node.getAttribute('srsName'); this.srsName = node.getAttribute('srsName');
var temp = OpenLayers.getTagText(node, "gml:coordinates"); var temp = OpenLayers.Util.getTagText(node, "gml:coordinates");
this._latlon = ol.LatLon.fromString(temp); this._latlon = ol.LatLon.fromString(temp);
this.title = OpenLayers.getTagText(docpt, "title"); this.title = OpenLayers.Util.getTagText(docpt, "title");
this.location = OpenLayers.getTagText(docpt, "locationName"); this.location = OpenLayers.Util.getTagText(docpt, "locationName");
this.docurl = OpenLayers.getTagText(docpt, "documentUrl"); this.docurl = OpenLayers.Util.getTagText(docpt, "documentUrl");
this.extract = OpenLayers.getTagText(docpt, "extract"); this.extract = OpenLayers.Util.getTagText(docpt, "extract");
this.geoExtract = OpenLayers.getTagText(docpt, "geoextract"); this.geoExtract = OpenLayers.Util.getTagText(docpt, "geoextract");
this.relevance = OpenLayers.getTagText(docpt, "relevance"); this.relevance = OpenLayers.Util.getTagText(docpt, "relevance");
this.geoRelevance = OpenLayers.getTagText(docpt, "georelevance"); this.geoRelevance = OpenLayers.Util.getTagText(docpt, "georelevance");
this.markerImage = OpenLayers.getTagText(docpt, "markerImage"); this.markerImage = OpenLayers.Util.getTagText(docpt, "markerImage");
this.size = new ol.Size(20, 25); // TODO: Fix this hard coded value. this.size = new ol.Size(20, 25); // TODO: Fix this hard coded value.
}, },
@@ -158,65 +158,4 @@ OpenLayers.Feature.MetaCarta.prototype= {
}; };
/**
* @param {Array} nodes
* @param {str} tagName
*
* @return {Array}
*/
OpenLayers._getNodes=function(nodes, tagName) {
var retArray = new Array();
for (var i=0;i<nodes.length;i++) {
if (nodes[i].nodeName==tagName) {
retArray.push(nodes[i]);
}
}
return retArray;
};
/** These could/should be made namespace aware?
*
* @param {} p
* @param {str} tagName
*
* @return {Array}
*/
OpenLayers.getNodes=function(p, tagName) {
var nodes = Try.these(
function () {
return OpenLayers._getNodes(p.documentElement.childNodes,
tagName);
},
function () {
return OpenLayers._getNodes(p.childNodes, tagName);
}
);
return nodes;
};
/**
* @param {} parent
* @param {str} item
* @param {int} index
*
* @return {str}
*/
OpenLayers.getTagText = function (parent, item, index) {
var result = OpenLayers.getNodes(parent, item);
if (result && (result.length > 0))
{
if (!index) {
index=0;
}
if (result[index].childNodes.length > 1) {
return result.childNodes[1].nodeValue;
}
else if (result[index].childNodes.length == 1) {
return result[index].firstChild.nodeValue;
}
} else {
return "";
}
};

View File

@@ -79,7 +79,7 @@ OpenLayers.Tile.WFS.prototype =
doc = OpenLayers.parseXMLString(request.responseText); doc = OpenLayers.parseXMLString(request.responseText);
} }
var resultFeatures = OpenLayers.getNodes(doc, "gml:featureMember"); var resultFeatures = OpenLayers.Util.getNodes(doc, "gml:featureMember");
// ol.Log.info(this.grid.name + " found " + // ol.Log.info(this.grid.name + " found " +
// resultFeatures.length + " features"); // resultFeatures.length + " features");

View File

@@ -684,3 +684,69 @@ OpenLayers.Util.applyDefaults = function (to, from) {
} }
return to; return to;
}; };
/** These could/should be made namespace aware?
*
* @param {} p
* @param {str} tagName
*
* @return {Array}
*/
OpenLayers.Util.getNodes=function(p, tagName) {
var nodes = Try.these(
function () {
return OpenLayers.Util._getNodes(p.documentElement.childNodes,
tagName);
},
function () {
return OpenLayers.Util._getNodes(p.childNodes, tagName);
}
);
return nodes;
};
/**
* @param {Array} nodes
* @param {str} tagName
*
* @return {Array}
*/
OpenLayers.Util._getNodes=function(nodes, tagName) {
var retArray = new Array();
for (var i=0;i<nodes.length;i++) {
if (nodes[i].nodeName==tagName) {
retArray.push(nodes[i]);
}
}
return retArray;
};
/**
* @param {} parent
* @param {str} item
* @param {int} index
*
* @return {str}
*/
OpenLayers.Util.getTagText = function (parent, item, index) {
var result = OpenLayers.getNodes(parent, item);
if (result && (result.length > 0))
{
if (!index) {
index=0;
}
if (result[index].childNodes.length > 1) {
return result.childNodes[1].nodeValue;
}
else if (result[index].childNodes.length == 1) {
return result[index].firstChild.nodeValue;
}
} else {
return "";
}
};