Image

Imageanadaseva wrote in Imagejavascript 😊chipper

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:

<?xml version="1.0"?>
<!DOCTYPE note [
  <!ENTITY EMPLOYEES (EMPLOYEE)>
  <!ELEMENT EMPLOYEE (FIRST_NAME,LAST_NAME,SSN,DATE_OF_HIRE,EMAIL,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.