G
Guest
I have this xslt :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl
aram name="p" select="'q'"/>
<xsl
utput method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:element name="test">
<xsl:value-of select="$p"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
and this method:
[WebMethod]
public XmlDocument Xsltest (String para)
{
XmlDocument tmp_xdoc = new XmlDocument();
XmlReader xmlrdr;
XsltArgumentList xslArg = new XsltArgumentList();
XslTransform xslt = new XslTransform();
try{
xslArg.AddParam("p", "", para);
xslt.Load(Server.MapPath("DescribeTypeTransform2.xslt"));
//data_xdoc exists already as global scope XmlDocument
xmlrdr = xslt.Transform(data_xdoc, xslArg);
tmp_xdoc.Load(xmlrdr);
}
catch (Exception e){
String s = "<error>" + e.Message + "</error>";
tmp_xdoc.LoadXml(s);
}
return tmp_xdoc;
}//end DocumentFeatureType
What I expected to see was
<?xml version="1.0" encoding="utf-8" ?>
<test>[the value of para as passed to the method or 'q']</test>
Instead I get
<?xml version="1.0" encoding="utf-8" ?>
<test />
But it works as expected in XMLSpy. What gives?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl

<xsl

<xsl:template match="/">
<xsl:element name="test">
<xsl:value-of select="$p"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
and this method:
[WebMethod]
public XmlDocument Xsltest (String para)
{
XmlDocument tmp_xdoc = new XmlDocument();
XmlReader xmlrdr;
XsltArgumentList xslArg = new XsltArgumentList();
XslTransform xslt = new XslTransform();
try{
xslArg.AddParam("p", "", para);
xslt.Load(Server.MapPath("DescribeTypeTransform2.xslt"));
//data_xdoc exists already as global scope XmlDocument
xmlrdr = xslt.Transform(data_xdoc, xslArg);
tmp_xdoc.Load(xmlrdr);
}
catch (Exception e){
String s = "<error>" + e.Message + "</error>";
tmp_xdoc.LoadXml(s);
}
return tmp_xdoc;
}//end DocumentFeatureType
What I expected to see was
<?xml version="1.0" encoding="utf-8" ?>
<test>[the value of para as passed to the method or 'q']</test>
Instead I get
<?xml version="1.0" encoding="utf-8" ?>
<test />
But it works as expected in XMLSpy. What gives?