<!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>