Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 736
  • Last Modified:

Need to parse sitemap.xml file using Javascript, and to display as html

I have the following sitemap XML file:

http://docksidemarket.3dcartstores.com/sitemap.xml

I need to find a way to parse this XML file using javascript, and to display it as HTML.

Is this possible to achieve?  If so, how?  

Ideally, I'd like to do it in such a way that I don't need to add any javascript code to the HEAD section of the page (and instead have all of the javascript code be contained somewhere within the opening and closing BODY tags).

Please advise.

Thanks!
- Yvan
0
egoselfaxis
Asked:
egoselfaxis
1 Solution
 
bartvdCommented:
Yes, it is possible.
This is how you parse xml via javascript: http://www.w3schools.com/xml/xml_parser.asp

Here is an example:
http://www.w3schools.com/xml/tryit.asp?filename=tryxml_parsertest
0
 
leakim971PluritechnicianCommented:
> to display it as HTML

could you provide an example for example for the first one :
<url>
<loc>http://docksidemarket.3dcartstores.com/</loc>
<lastmod>2011-09-21</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>

Open in new window


are you ok with the follwing :
<tr><td>http://docksidemarket.3dcartstores.com</td><td>2011-09-21</td><td>daily</td></tr>

Open in new window

0
 
ProculopsisCommented:

Use a style sheet to automatically transform your xml, as below:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
<title>http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_27320729.html</title>
<script type="text/javascript" src="http://filedb.experts-exchange.com/incoming/2011/05_w20/458595/jquery-1.5.2.min.js"></script>
<script type="text/javascript">

jQuery(document).ready( function() {

  var xmlSource = $("#xml-source").val();
  var xslSource = $("#xml-style-sheet").val();

  var xml = parser( xmlSource );
  var xsl = parser( xslSource );
  var transform = xml.transformNode( xsl );
  $("#transform").html( transform );

});

function parser( xml )
{
  var result = new ActiveXObject( "MSXML.DOMDocument" );
  result.async = false;
  result.loadXML( xml );
  return result;
}

</script>

</head> 
<body> 

<div id="transform" class="main"></div>

<fieldset style="padding: 16px; width: 60%"><legend>XSL</legend>
<textarea id="xml-style-sheet" style="width: 100%; height: 200px; background-color: beige;">

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <ul>
      <xsl:for-each select="urlset/url">
        <li>
          <a href="{loc}"><xsl:value-of select="loc" /></a>
        </li>
      </xsl:for-each>
  </ul>
</xsl:template>
</xsl:stylesheet>

</textarea>
</fieldset>

<fieldset style="padding: 16px; width: 60%"><legend>XML</legend>
<textarea id="xml-source" style="width: 100%; height: 200px; background-color: beige;">

<?xml version="1.0" encoding="ISO-8859-1"?>
<urlset><url><loc>http://docksidemarket.3dcartstores.com/</loc><lastmod>2011-09-21</lastmod><changefreq>daily</changefreq><priority>1</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Cakes_c_1.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Cookies-Brownies_c_7.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Island-Assortments_c_8.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Salsa_c_9.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Sauces_c_10.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Hot-Sauces_c_11.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Reel-Heat_c_12.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Gift-Shop_c_13.html</loc><lastmod>2011-09-21</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Conch-Chowder_p_9.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Island-Jerk-Meatloaf_p_10.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Jicama-and-Corn-Fruit-Salad_p_11.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Tomatillo-and-Swiss-Cheese-Enchiladas_p_12.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Key-Lime-Cheesecake_p_13.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Seafood-Bisque_p_14.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>http://docksidemarket.3dcartstores.com/About-Us_ep_7.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.3</priority></url><url><loc>http://docksidemarket.3dcartstores.com/In-Your-Neighborhood_ep_40.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.3</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Serving-Suggestions_ep_42.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.3</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Storage_ep_43.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.3</priority></url><url><loc>http://docksidemarket.3dcartstores.com/Wholesale_ep_45.html</loc><lastmod>2011-09-21</lastmod><changefreq>monthly</changefreq><priority>0.3</priority></url></urlset>
</textarea>
</fieldset>

</body>
</html>

Open in new window

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
egoselfaxisAuthor Commented:
leakim971 - yes -- I am ok with the table rows/cells.  All I need from the xml file are the urls, really.

Thanks,
- Yvan

0
 
leakim971PluritechnicianCommented:
the XML is hosted on a different website than your page?
0
 
egoselfaxisAuthor Commented:
No it is not - it is on the same site.

- Yvan
0
 
leakim971PluritechnicianCommented:
Ok put this in the body where you want to see the url :
<div id="urls"></div>
<script type="text/javascript" language="javascript">

	var xmlhttp;
	if(window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState==4 && xmlhttp.status==200) {

	    	loc = xmlhttp.responseXML.documentElement.getElementsByTagName("loc");
	    	for(i=0;i<loc.length;i++) {
		    	document.getElementById("urls").appendChild(document.createTextNode( loc[i].firstChild.nodeValue ));
		    	document.getElementById("urls").appendChild(document.createElement("br"));
	    	}
	    	document.getElementById("urls").innerHTML = table;
	    }	    
	}
	xmlhttp.open("GET", "sitemap.xml", true);
	xmlhttp.send(null);

</script>

Open in new window

0
 
egoselfaxisAuthor Commented:
That worked for me - thanks!

- Yvan
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now