diff options
Diffstat (limited to 'misc/openlayers/examples/xml.html')
-rw-r--r-- | misc/openlayers/examples/xml.html | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/misc/openlayers/examples/xml.html b/misc/openlayers/examples/xml.html new file mode 100644 index 0000000..696229b --- /dev/null +++ b/misc/openlayers/examples/xml.html @@ -0,0 +1,161 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> + <meta name="apple-mobile-web-app-capable" content="yes"> + <title>XML Parsing Example</title> + <link rel="stylesheet" href="../theme/default/style.css" type="text/css"> + <link rel="stylesheet" href="style.css" type="text/css"> + <style type="text/css"> + #output { + font-family: monospace; + background-color: #efefef; + font-size: 0.9em; + padding: 1em; + } + span.code { + font-family: monospace; + background-color: #efefef; + font-size: 0.9em; + padding: 0.25em; + line-height: 1.5em; + } + ul { + margin: 0; + padding: 0 0 1em 1.5em; + } + ul li { + padding-left: 0; + } + + </style> + <script src="../lib/Firebug/firebug.js" type="text/javascript"></script> + <script src="../lib/OpenLayers.js" type="text/javascript"></script> + <script type="text/javascript"> + //<![CDATA[ + + var format = new OpenLayers.Format.XML(); + var doc = null; + + function init() { + OpenLayers.Request.GET({ + url: "xml/features.xml", + success: loadSuccess, + failure: loadFailure + }); + } + + function loadSuccess(request) { + updateStatus("loaded"); + if(!request.responseXML.documentElement) { + doc = format.read(request.responseText); + } else { + doc = request.responseXML; + } + } + + function loadFailure(request) { + updateStatus("failed to load"); + } + + function updateStatus(msg) { + document.getElementById("loadStatus").firstChild.nodeValue = msg; + } + + function updateOutput(text) { + document.getElementById("output").firstChild.nodeValue = text; + } + + function write() { + var text = format.write(doc); + updateOutput(text); + } + + function getElementsByTagNameNS(node, uri, name) { + var nodes = format.getElementsByTagNameNS(node, uri, name); + var pieces = []; + for(var i=0; i<nodes.length; ++i) { + pieces.push(format.write(nodes[i])); + } + updateOutput(pieces.join(' ')); + } + + function hasAttributeNS(node, uri, name) { + updateOutput(format.hasAttributeNS(node, uri, name)) + } + + function getAttributeNodeNS(node, uri, name) { + var attributeNode = format.getAttributeNodeNS(node, uri, name); + updateOutput(attributeNode.nodeName + ' = "' + + attributeNode.nodeValue + '"'); + } + + function getAttributeNS(node, uri, name) { + var attributeValue = format.getAttributeNS(node, uri, name); + updateOutput('"' + attributeValue + '"') + } + + function createElementNS(uri, name) { + var node = format.createElementNS(uri, name); + doc.documentElement.appendChild(node); + write(); + } + + function createTextNode(text) { + var node = format.createTextNode(text); + doc.documentElement.appendChild(node); + write(); + } + + window.onload = init; + + //]]> + </script> + </head> + <body> + <h1 id="title">XML Format Example</h1> + + <div id="tags"> + xml + </div> + + <p id="shortdesc"> + Shows the use of the OpenLayers XML format class + </p> + + <div id="docs"> + <p>OpenLayers has a very simple XML format class (OpenLayers.Format.XML) + that can be used to read/write XML docs. The methods available on the + XML format (or parser if you like) allow for reading and writing of the + various XML flavors used by the library - in particular the vector data + formats. It is by no means intended to be a full-fledged XML toolset. + Additional methods will be added only as needed elsewhere in the + library.</p> + <p>This page loads an XML document and demonstrates a few of the methods + available in the parser.</p> + <p>Status: <b>XML document <span id="loadStatus">loading..</span>.</b></p> + <p>After the XML document loads, see the result of a few of the methods + below. Assume that you start with the following code: + <br> + <span class="code"> + var format = new OpenLayers.Format.XML(); + </span> + </p> + Sample methods + <ul> + <li><a href="javascript:void write();">format.write()</a> - write the XML doc as text</li> + <li><a href="javascript:void getElementsByTagNameNS(doc, 'http://www.opengis.net/gml', 'MultiPolygon');">format.getElementsByTagNameNS()</a> - get all gml:MultiPolygon</li> + <li><a href="javascript:void hasAttributeNS(doc.documentElement, 'http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation');">format.hasAttributeNS()</a> - test to see schemaLocation attribute exists in the http://www.w3.org/2001/XMLSchema-instance namespace</li> + <li><a href="javascript:void getAttributeNodeNS(doc.documentElement, 'http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation');">format.getAttributeNodeNS()</a> - get schemaLocation attribute in the http://www.w3.org/2001/XMLSchema-instance namespace</li> + <li><a href="javascript:void getAttributeNS(doc.documentElement, 'http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation');">format.getAttributeNS()</a> - get schemaLocation attribute value in the http://www.w3.org/2001/XMLSchema-instance namespace</li> + <li><a href="javascript:void createElementNS('http://bar.com/foo', 'foo:TestNode');">format.createElementNS()</a> - create a foo:TestNode element (and append it to the doc)</li> + <li><a href="javascript:void createTextNode('test text ');">format.createTextNode()</a> - create a text node (and append it to the doc)</li> + </ul> + Output: + <div id="output"> </div> + </div> + </body> +</html> + + |