[Mono-list] XSLT transform problems...
Jae Stutzman
jaebird at coolaccess.net
Sat Jul 9 14:46:05 EDT 2005
I'm doing some XSLT transforms in ASP.NET and I'm seeing a difference in
behavior from MS.NET. It seems to have to do with multiple xml documents
using the document() function.
<?xml version="1.0"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:variable name="currentUser" select="root/user"/>
<xsl:variable name="usersDoc" select="document('users.xml')"/>
<xsl:variable name="currentThemePark">
<xsl:for-each select="$usersDoc/userSettings/user">
<xsl:if test="id=currentUser">
<xsl:value-of select="favPark"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
...
...
My aspx file looks like this...
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %>
<script language="C#" runat="server">
public void Page_Load(Object sender, EventArgs E) {
string xmlPath = Server.MapPath("main.xml");
string xslPath = Server.MapPath("main.xsl");
FileStream fs = new FileStream(xmlPath,FileMode.Open,
FileAccess.Read);
StreamReader reader = new StreamReader(fs,Encoding.UTF8);
XmlTextReader xmlReader = new XmlTextReader(reader);
//Instantiate the XPathDocument Class
XPathDocument doc = new XPathDocument(xmlReader);
//Instantiate the XslTransform Class
XslTransform xslDoc = new XslTransform();
xslDoc.Load(xslPath);
xslDoc.Transform(doc,null,Response.Output);
//Close Readers
reader.Close();
xmlReader.Close();
}
</script>
When I include the currentThemePark variable I lose both variables when
I try to get the value-of them. Under MS ASP.NET this works fine.
This seems like a bug? Could be an XPath problem dealing with multiple
documents. Is there another way to accomplish this? I need to have
multiple XML documents.
Thanks,
Jae
More information about the Mono-list
mailing list