Introductory Post + Question
I'm writing a bit of Javascript (not quite a total newbie but gosh-darn close, though I have experience in other programming languages) to display some XML transformed by XSL. I've created the files to do this and if I use them seperately (sans Javascript), it displays just fine. And that's fine for browsers that have that capability and can handle that without issues, but I'd like to see if I couldn't increase its compatibility a bit by using (drum-roll) Javascript.
Here's the contents of the two files. All of the info is completely made up.
employees.xml contains:
employees.xsl contains:
And finally employees.html contains:
Don't be afraid to let the newbie have it. I'm trying to learn here, but I've been grinding my wheels on this one and I thought it worth asking about.
Here's the contents of the two files. All of the info is completely made up.
employees.xml contains:
<?xml version="1.0"?>
<!DOCTYPE note [
<!ENTITY EMPLOYEES (EMPLOYEE)>
<!ELEMENT EMPLOYEE (FIRST_NAME,LAST_NAME,SSN,DATE_OF_HIRE,E MAIL,PHONE,EMPLOYEE_NUM,MARRIED)>
<!ELEMENT FIRST_NAME (#PCDATA)>
<!ELEMENT LAST_NAME (#PCDATA)>
<!ELEMENT SSN (#PCDATA)>
<!ELEMENT DATE_OF_HIRE (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT PHONE (#PCDATA)>
<!ELEMENT EMPLOYEE_NUM (#PCDATA)>
<!ELEMENT MARRIED (#PCDATA)>
]>
<EMPLOYEES>
<TITLE>EMPLOYEES</TITLE>
<EMPLOYEE>
<FIRST_NAME>John</FIRST_NAME>
<LAST_NAME>Rountree</LAST_NAME>
<SSN>213-13-1512</SSN>
<DATE_OF_HIRE>02-03-2006</DATE_OF_HIRE>
<EMAIL>jr@newbieworld.com</EMAIL>
<PHONE>5556200922</PHONE>
<EMPLOYEE_NUM>00000128</EMPLOYEE_NUM>
<MARRIED>No</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Larry</FIRST_NAME>
<LAST_NAME>Becker</LAST_NAME>
<SSN>252-43-1321</SSN>
<DATE_OF_HIRE>02-15-2003</DATE_OF_HIRE>
<EMAIL>lb@newbieworld.com</EMAIL>
<PHONE>5556202435</PHONE>
<EMPLOYEE_NUM>00000025</EMPLOYEE_NUM>
<MARRIED>Yes</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Alison</FIRST_NAME>
<LAST_NAME>Rountree</LAST_NAME>
<SSN>323-54-9992</SSN>
<DATE_OF_HIRE>11-07-2001</DATE_OF_HIRE>
<EMAIL>lr@newbieworld.com</EMAIL>
<PHONE>5556204222</PHONE>
<EMPLOYEE_NUM>00000005</EMPLOYEE_NUM>
<MARRIED>Yes</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Catrina</FIRST_NAME>
<LAST_NAME>Becker</LAST_NAME>
<SSN>442-22-9929</SSN>
<DATE_OF_HIRE>02-01-2006</DATE_OF_HIRE>
<EMAIL>jb@newbieworld.com</EMAIL>
<PHONE>5556203432</PHONE>
<EMPLOYEE_NUM>00000123</EMPLOYEE_NUM>
<MARRIED>Yes</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Edward</FIRST_NAME>
<LAST_NAME>Newbourne</LAST_NAME>
<SSN>123-45-6789</SSN>
<DATE_OF_HIRE>12-25-2004</DATE_OF_HIRE>
<EMAIL>en@newbieworld.com</EMAIL>
<PHONE>5556204356</PHONE>
<EMPLOYEE_NUM>00000075</EMPLOYEE_NUM>
<MARRIED>No</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Dana</FIRST_NAME>
<LAST_NAME>Newbourne</LAST_NAME>
<SSN>211-53-1212</SSN>
<DATE_OF_HIRE>02-03-2002</DATE_OF_HIRE>
<EMAIL>jn@newbieworld.com</EMAIL>
<PHONE>5554350922</PHONE>
<EMPLOYEE_NUM>00000032</EMPLOYEE_NUM>
<MARRIED>Yes</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Cassandra</FIRST_NAME>
<LAST_NAME>Porter</LAST_NAME>
<SSN>755-42-2312</SSN>
<DATE_OF_HIRE>07-25-2003</DATE_OF_HIRE>
<EMAIL>cp@newbieworld.com</EMAIL>
<PHONE>5556201922</PHONE>
<EMPLOYEE_NUM>00000056</EMPLOYEE_NUM>
<MARRIED>No</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Pamela</FIRST_NAME>
<LAST_NAME>Jackson</LAST_NAME>
<SSN>232-47-7568</SSN>
<DATE_OF_HIRE>04-32-2005</DATE_OF_HIRE>
<EMAIL>pj@newbieworld.com</EMAIL>
<PHONE>5556208822</PHONE>
<EMPLOYEE_NUM>00000110</EMPLOYEE_NUM>
<MARRIED>No</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Jess</FIRST_NAME>
<LAST_NAME>Tucker</LAST_NAME>
<SSN>213-56-8695</SSN>
<DATE_OF_HIRE>08-11-2004</DATE_OF_HIRE>
<EMAIL>jt@newbieworld.com</EMAIL>
<PHONE>5556207882</PHONE>
<EMPLOYEE_NUM>00000100</EMPLOYEE_NUM>
<MARRIED>No</MARRIED>
</EMPLOYEE>
<EMPLOYEE>
<FIRST_NAME>Kimberly</FIRST_NAME>
<LAST_NAME>Jones</LAST_NAME>
<SSN>987-99-1232</SSN>
<DATE_OF_HIRE>02-01-2006</DATE_OF_HIRE>
<EMAIL>kj@newbieworld.com</EMAIL>
<PHONE>5556207892</PHONE>
<EMPLOYEE_NUM>00000124</EMPLOYEE_NUM>
<MARRIED>Yes</MARRIED>
</EMPLOYEE>
</EMPLOYEES>employees.xsl contains:
<?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="/">
<html>
<body>
<h2>Newbie World Inc. Employees</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">First Name</th>
<th align="left">Last Name</th>
<th align="left">SSN</th>
<th align="left">Date Of Hire</th>
<th align="left">Email</th>
<th align="left">Phone</th>
<th align="left">Employee #</th>
<th align="left">Married?</th>
</tr>
<xsl:for-each select="EMPLOYEES/EMPLOYEE">
<xsl:sort select="LAST_NAME"/>
<xsl:sort select="FIRST_NAME"/>
<tr>
<td><xsl:value-of select="FIRST_NAME"/></td>
<td><xsl:value-of select="LAST_NAME"/></td>
<td><xsl:value-of select="SSN"/></td>
<td><xsl:value-of select="DATE_OF_HIRE"/></td>
<td><xsl:value-of select="EMAIL"/></td>
<td><xsl:value-of select="PHONE"/></td>
<td><xsl:value-of select="EMPLOYEE_NUM"/></td>
<td><xsl:value-of select="MARRIED"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>And finally employees.html contains:
<html>
<head>
<title>Newbie Incorporated Employee Roster</title>
</head>
<body>
<html>
<body>
<script language="javascript">
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("employees.xml")
// Load the XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("employees.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>
</body>
</html>Don't be afraid to let the newbie have it. I'm trying to learn here, but I've been grinding my wheels on this one and I thought it worth asking about.
