davon Posted December 29, 2005 Share Posted December 29, 2005 Hi,Can someone show me an exmple on how do I take the info at http://www.shareasale.com/dealdatabase2.xmland place it into a html page using Javascript. It should update the data all the time.Or at least start me on the way,Thanks,David Link to comment Share on other sites More sharing options...
aspnetguy Posted December 29, 2005 Share Posted December 29, 2005 http://www.w3schools.com/dom/default.aspThis tutorial should give you a good start. Link to comment Share on other sites More sharing options...
boen_robot Posted December 30, 2005 Share Posted December 30, 2005 In order to show this info, you would also need some XSLT to transform it. Because I didn't had much to do, here's a simple XSLT I made few minutes ago specially for you(in other words: I used your feed for tests) . <?xml version="1.0" encoding="windows-1251"?><!-- DWXMLSource="http://www.shareasale.com/dealdatabase2.xml" --><!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> <!ENTITY copy "©"> <!ENTITY reg "®"> <!ENTITY trade "™"> <!ENTITY mdash "—"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY pound "£"> <!ENTITY yen "¥"> <!ENTITY euro "€">]><xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="html" encoding="iso-8859-1"doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/><xsl:template match="/rss/channel"><xsl:variable name="link" select="//link" /><div><a href="{link}"><xsl:value-of select="title" /></a><br /><xsl:value-of select="description" /><br /><xsl:for-each select="image"><xsl:variable name="url" select="url" /><xsl:variable name="title" select="title" /><xsl:variable name="width" select="width" /><xsl:variable name="height" select="height" /><a href="{link}"><img src="{url}" alt="{title}" width="{width}" height="{height}" /></a><br /></xsl:for-each></div><div><xsl:for-each select="item"><span><a href="{link}"><xsl:value-of select="title" /></a><br /><xsl:value-of select="description" /><br /></span></xsl:for-each></div></xsl:template></xsl:stylesheet> A recently discovered(well...) JavaScript that would load the feed and the XSLT is this one: <!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>TEST</title> <script type="text/javascript"> var sourceXML = 'http://www.shareasale.com/dealdatabase2.xml'; var sourceXSL = 'rss.xsl'; var container = 'xmlData' ; function getIEXML() { var writeObj = document.getElementById(container); // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = false; xml.load(sourceXML); // Load the XSL var xsl = new ActiveXObject("Microsoft.XMLDOM"); xsl.async = false; xsl.validateOnParse = false; xsl.load(sourceXSL); // Transform writeObj.innerHTML = xml.transformNode(xsl); } function startMozXML() { //Load the XML xmlhttpXSL = new XMLHttpRequest(); xmlhttpXSL.open("GET", sourceXSL, false); xmlhttpXSL.setRequestHeader("Content-Type", "text/css") xmlhttpXSL.send(null); loadedStyle = xmlhttpXSL.responseXML; //Load the XSL xmlhttpXML = new XMLHttpRequest(); xmlhttpXML.open("GET", sourceXML, false); xmlhttpXML.setRequestHeader("Content-Type", "text/xml") xmlhttpXML.send(null); var xmlDoc = xmlhttpXML.responseXML; //Transform var writeObj = document.getElementById(container); var xsltProcessor = new XSLTProcessor(); var xmls = new XMLSerializer(); xsltProcessor.importStylesheet(loadedStyle); var xmlDoc = xsltProcessor.transformToDocument(xmlhttpXML.responseXML); writeObj.innerHTML = xmls.serializeToString(xmlDoc); } function init() { if(window.ActiveXObject) { getIEXML(); } else if(window.XMLHttpRequest && window.XSLTProcessor) { startMozXML(); } else { document.getElementById(container). innerHTML = 'No Support In This Browser..' } } window.onload = init; </script></head><body><div id="xmlData">In order to see this, you must turn on your JavaScript.<br />If yo have turned on your JavaScript, refresh the page and wait.</div></body></html> However, now that you mentioned it, I tested the above code and... khm... the only way it will run is if the XML and the XSLT are in one folder. It can't work with absolute paths.Perhaps if you or anyone else could adjust the code for absolute paths, this code will get all feeds out there(or atleast this one ). Link to comment Share on other sites More sharing options...
hacknsack Posted December 30, 2005 Share Posted December 30, 2005 The problem is security, crossing domains is not allowed( depending on the browser ).@boen_robot, your code works good in IE even across the domains.When used in FF it gives the error "uncaught exception: Permission denied".See "Security Issues" in this article:xmlhttpreq.html@davon, Are you using something server side that can retreive and store the xml file. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now