Hi,
I am trying to get an XSL file to accept a parameter from ASP to process an XML file. However when I run the thing it fails with:
MSXML3.DLL error '80004005'
Required attribute 'version' is missing.
/test/periodic.asp, line 27
Can anyone point out where my problem is. Source below.
Thanks in advance.
<%@ Language=VBScript %>
<%
Option Explicit
'On Error Resume Next
Dim sHTML ' HTML to output to browser
Dim oXML ' XML Dom object
Dim bLoad ' Make sure the xml doc was loaded successfully
Set oXML = Server.CreateObject("MSXML2.FreeThreadedDOMDocument"
bLoad = oXML.load(Server.MapPath("periodic.xml"
)
If bLoad Then
Dim oXSL
Dim oTemplate
Dim oProc
Dim oResult
Set oXSL = Server.CreateObject("MSXML2.FreeThreadedDOMDocument"
Set oTemplate = Server.CreateObject("MSXML2.XSLTemplate"
Set oResult = Server.CreateObject("MSXML2.FreeThreadedDOMDocument"
oXSL.load Server.MapPath("periodic.xsl"
oTemplate.stylesheet = oXSL
Set oProc = oTemplate.createProcessor()
oProc.input = oXML
oProc.output = oResult
oProc.addParameter "myatom", "Carbon"
oProc.transform
sHTML = oResult.xml
End If
%>
<html>
<%=sHTML%>
</html>
<?xml version="1.0"?>
<PERIODIC_TABLE>
<ATOM STATE="GAS">
<NAME>Hydrogen</NAME>
<SYMBOL>H</SYMBOL>
<ATOMIC_NUMBER>1</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>1.00794</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">20.28</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">13.81</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.0899
</DENSITY>
</ATOM>
<ATOM STATE="GAS">
<NAME>Helium</NAME>
<SYMBOL>He</SYMBOL>
<ATOMIC_NUMBER>2</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>4.0026</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
<ATOM STATE="SOLID">
<NAME>Berylium</NAME>
<SYMBOL>Be</SYMBOL>
<ATOMIC_NUMBER>3</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>6.0026</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
<ATOM STATE="SOLID">
<NAME>Boron</NAME>
<SYMBOL>B</SYMBOL>
<ATOMIC_NUMBER>4</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>8.26</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
<ATOM STATE="SOLID">
<NAME>Carbon</NAME>
<SYMBOL>C</SYMBOL>
<ATOMIC_NUMBER>5</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>14</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
</PERIODIC_TABLE>
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="
<xsl
aram name="myatom" />
<xsl:template match="/">
<html>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
<th>State</th>
</tr>
<xsl:apply-templates/>
</table>
</html>
</xsl:template>
<xsl:template match="PERIODIC_TABLE">
<body>
<xsl:apply-templates/>
</body>
</xsl:template>
<xsl:template match="ATOM">
<xsl:if match=".[NAME = $myatom]">
<xsl:value-of select="NAME"/>
<xsl:value-of select="SYMBOL"/>
<xsl:value-of select="ATOMIC_NUMBER"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
I am trying to get an XSL file to accept a parameter from ASP to process an XML file. However when I run the thing it fails with:
MSXML3.DLL error '80004005'
Required attribute 'version' is missing.
/test/periodic.asp, line 27
Can anyone point out where my problem is. Source below.
Thanks in advance.
<%@ Language=VBScript %>
<%
Option Explicit
'On Error Resume Next
Dim sHTML ' HTML to output to browser
Dim oXML ' XML Dom object
Dim bLoad ' Make sure the xml doc was loaded successfully
Set oXML = Server.CreateObject("MSXML2.FreeThreadedDOMDocument"
bLoad = oXML.load(Server.MapPath("periodic.xml"
If bLoad Then
Dim oXSL
Dim oTemplate
Dim oProc
Dim oResult
Set oXSL = Server.CreateObject("MSXML2.FreeThreadedDOMDocument"
Set oTemplate = Server.CreateObject("MSXML2.XSLTemplate"
Set oResult = Server.CreateObject("MSXML2.FreeThreadedDOMDocument"
oXSL.load Server.MapPath("periodic.xsl"
oTemplate.stylesheet = oXSL
Set oProc = oTemplate.createProcessor()
oProc.input = oXML
oProc.output = oResult
oProc.addParameter "myatom", "Carbon"
oProc.transform
sHTML = oResult.xml
End If
%>
<html>
<%=sHTML%>
</html>
<?xml version="1.0"?>
<PERIODIC_TABLE>
<ATOM STATE="GAS">
<NAME>Hydrogen</NAME>
<SYMBOL>H</SYMBOL>
<ATOMIC_NUMBER>1</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>1.00794</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">20.28</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">13.81</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.0899
</DENSITY>
</ATOM>
<ATOM STATE="GAS">
<NAME>Helium</NAME>
<SYMBOL>He</SYMBOL>
<ATOMIC_NUMBER>2</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>4.0026</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
<ATOM STATE="SOLID">
<NAME>Berylium</NAME>
<SYMBOL>Be</SYMBOL>
<ATOMIC_NUMBER>3</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>6.0026</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
<ATOM STATE="SOLID">
<NAME>Boron</NAME>
<SYMBOL>B</SYMBOL>
<ATOMIC_NUMBER>4</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>8.26</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
<ATOM STATE="SOLID">
<NAME>Carbon</NAME>
<SYMBOL>C</SYMBOL>
<ATOMIC_NUMBER>5</ATOMIC_NUMBER>
<ATOMIC_WEIGHT>14</ATOMIC_WEIGHT>
<BOILING_POINT UNITS="Kelvin">4.216</BOILING_POINT>
<MELTING_POINT UNITS="Kelvin">0.95</MELTING_POINT>
<DENSITY UNITS="grams/cubic centimeter"><!-- At 300K -->
0.1785
</DENSITY>
</ATOM>
</PERIODIC_TABLE>
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="
<xsl
<xsl:template match="/">
<html>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
<th>State</th>
</tr>
<xsl:apply-templates/>
</table>
</html>
</xsl:template>
<xsl:template match="PERIODIC_TABLE">
<body>
<xsl:apply-templates/>
</body>
</xsl:template>
<xsl:template match="ATOM">
<xsl:if match=".[NAME = $myatom]">
<xsl:value-of select="NAME"/>
<xsl:value-of select="SYMBOL"/>
<xsl:value-of select="ATOMIC_NUMBER"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>