Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries [Thread Prev] >Thread Next - Re: XSLT Parameters not working XSLT Parameters not workingTo: NULL Date: 10/21/2008 9:32:00 AM Hi, I have been chasing my tail to find out why the XSLT parameters that are defined do not end up in the resulting html file. I have a C# code which uses an XML and XSLT and transforms it into html. But the XSLT parameters do not show up in the output html. When i put break point in the code, there are values present. The problem specifically is that src="" value is empty in the resultant html output file but when we look at logoPath, in the code, it is filled in with values. Here is the XML: <?xml version="1.0" standalone="yes"?> <NewDataSet> <Report> <filetype>ppt</filetype> <friendlytype>Microsoft PowerPoint presentation</friendlytype> <count>10</count> <kbytes>21524</kbytes> <pages>320.657392483418</pages> </Report> <Report> <filetype>aaa</filetype> <friendlytype /> <count>1</count> <kbytes>22731</kbytes> <pages>151141.63636363638</pages> </Report> <Report> <filetype>rar</filetype> <friendlytype /> <count>2</count> <kbytes>14970</kbytes> <pages>0</pages> </Report> <Report> <filetype>doc</filetype> <friendlytype>Microsoft Word document</friendlytype> <count>18</count> <kbytes>16171</kbytes> <pages>674.98258764684522</pages> </Report> <Report> <filetype>pptx</filetype> <friendlytype>Microsoft Office PowerPoint 2007 document</friendlytype> <count>35</count> <kbytes>4727</kbytes> <pages>40.345326960261779</pages> </Report> <Report> <filetype>xls</filetype> <friendlytype>Microsoft Excel worksheet</friendlytype> <count>2</count> <kbytes>61</kbytes> <pages>9.7994135754491865</pages> </Report> <Report> <filetype>pdf</filetype> <friendlytype>Adobe Acrobat Portable Document Format</friendlytype> <count>10</count> <kbytes>8338</kbytes> <pages>242.2873406624802</pages> </Report> <Report> <filetype>vsd</filetype> <friendlytype>Visio drawing (flow chart or schematic)</friendlytype> <count>4</count> <kbytes>8025</kbytes> <pages>57.061944367276247</pages> </Report> <Report> <filetype>mpp</filetype> <friendlytype>Microsoft Project file</friendlytype> <count>9</count> <kbytes>6254</kbytes> <pages>1528.7909342811379</pages> </Report> <Report> <filetype>docx</filetype> <friendlytype>Microsoft Office Word 2007 document</friendlytype> <count>20</count> <kbytes>19181</kbytes> <pages>34.733613045652262</pages> </Report> <Report> <filetype>jpg</filetype> <friendlytype>JPEG bitmap</friendlytype> <count>3</count> <kbytes>922</kbytes> <pages>5.4262564888121814</pages> </Report> <Report> <filetype>cfg</filetype> <friendlytype>Configuration file</friendlytype> <count>1</count> <kbytes>1</kbytes> <pages>0.3777010212006518</pages> </Report> <Report> <filetype>ixa</filetype> <friendlytype /> <count>1</count> <kbytes>41</kbytes> <pages>0</pages> </Report> <Report> <filetype>ixb</filetype> <friendlytype /> <count>1</count> <kbytes>951</kbytes> <pages>6200.8002636783121</pages> </Report> <Report> <filetype>ixc</filetype> <friendlytype /> <count>1</count> <kbytes>43</kbytes> <pages>304.76548605112049</pages> </Report> <Report> <filetype>ixe</filetype> <friendlytype /> <count>1</count> <kbytes>19</kbytes> <pages>0</pages> </Report> <Report> <filetype>net</filetype> <friendlytype /> <count>1</count> <kbytes>0</kbytes> <pages>0</pages> </Report> <Report> <filetype>xml</filetype> <friendlytype>Extensive Markup Language file</friendlytype> <count>1</count> <kbytes>74</kbytes> <pages>21.259785407411741</pages> </Report> <Report> <filetype>xlsx</filetype> <friendlytype>Microsoft Office Excel 2007 document</friendlytype> <count>4</count> <kbytes>146</kbytes> <pages>1.5826580164454021</pages> </Report> <Report> <filetype>db</filetype> <friendlytype /> <count>1</count> <kbytes>18</kbytes> <pages>28.876554268021753</pages> </Report> <Report> <filetype>trd</filetype> <friendlytype /> <count>2</count> <kbytes>2677</kbytes> <pages>0</pages> </Report> <Report> <filetype>exe</filetype> <friendlytype>Executable file (program)</friendlytype> <count>1</count> <kbytes>25</kbytes> <pages>129.14174202321775</pages> </Report> <Report> <filetype>txt</filetype> <friendlytype>Text</friendlytype> <count>3</count> <kbytes>496</kbytes> <pages>109.95245970121408</pages> </Report> <Summary> <numberfiles>132</numberfiles> <numberdirs>2</numberdirs> <totalkbytes>127382</totalkbytes> <truetype>false</truetype> <inventorypath>C:\Documents and Settings\brothervics\My Documents\Architecture</inventorypath> <inventorydate>10/21/2008 9:20:11 AM</inventorydate> <haserrors>false</haserrors> <cancelled>false</cancelled> </Summary> </NewDataSet> Here is the XSL file content: <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:lex="http://mainplace.com/somewhere/Reports"> <xsl:output method="html" /> <xsl:template match="/"> <xsl:param name="logoPath" /> <xsl:param name="indexPath" /> <xsl:param name="cancelMsg" /> <xsl:param name="detailed" /> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" /> <meta name="Generator" content="Microsoft Word 11 (filtered)" /> <title>File Inventory Report</title> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} p.MsoHeader, li.MsoHeader, div.MsoHeader {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} p.MsoFooter, li.MsoFooter, div.MsoFooter {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} @page Section1 {size:11.0in 8.5in; margin:1.25in 1.0in 1.25in 1.0in;} div.Section1 {page:Section1;} --></style> </head> <body lang="EN-US"> <div class="Section1"> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style='border-collapse:collapse'> <tr> <td width="439" valign="top" style='width:329.4pt;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoHeader"> <img width="686" height="135"> <xsl:attribute name="src"> <xsl:value-of select="$logoPath" /> </xsl:attribute> </img> </p> </td> </tr> </table> <a href="http:\\www.someplace.com">www.someplace.com</a> <p class="MsoNormal">Inventory date: <xsl:value-of select="NewDataSet/Summary/inventorydate"/></p> <p class="MsoNormal">Inventory path: <xsl:value-of select="NewDataSet/Summary/inventorypath"/></p> <p class="MsoNormal">Type by Content: <xsl:value-of select="NewDataSet/Summary/truetype"/></p> <tt> <b><font color="#CC0000"><xsl:value-of select="$cancelMsg"/> <xsl:for-each select="NewDataSet/Errors"> <p class="MsoNormal"><xsl:value-of select="description"/></p> </xsl:for-each> </font></b> </tt> <p class="MsoNormal"> <span style='color:#333399'></span> </p> <p class="MsoNormal"> <b> <i> <span style='color:#333399'> <xsl:value-of select="lex:projectPageEstimateReport/@date" /> </span> </i> </b> </p> <p class="MsoNormal"></p> <p class="MsoNormal">Here is the page estimate report for project <xsl:value-of select="lex:projectPageEstimateReport/@name" />:</p> <p class="MsoNormal"></p> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style='border-collapse:collapse'> <tr> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;background:#CCCCCC;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center'> <b>Input Data Size (Mb)</b> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;background:#CCCCCC;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center'> <b>Total Files Files</b> </p> </td> <td valign="top" style='border:none;border-bottom:solid white 2.25pt; background:#CCCCCC;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center'> <b>Total Estimated Pages</b> </p> </td> </tr> <tr> <td valign="top" style='border:none;border-right:solid white 2.25pt;background: #F2F2F2;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center'> <xsl:value-of select="format-number(sum(NewDataSet/Report/kbytes) div 1024,'###,###,##0.###')" /> </p> </td> <td valign="top" style='border:none;border-right:solid white 2.25pt;background: #F2F2F2;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center'> <xsl:value-of select="format-number(sum(NewDataSet/Report/count), '###,###,##0')" /> </p> </td> <td valign="top" style='background:#F2F2F2;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center'> <xsl:value-of select="format-number(sum(NewDataSet/Report/pages), '###,###,##0.#')" /> </p> </td> </tr> </table> <p class="MsoNormal"></p> <p class="MsoNormal">The page estimate breakout on a file type basis is shown below:</p> <p class="MsoNormal"></p> <table class="MsoTableContemporary" border="0" cellspacing="0" cellpadding="0" style='border-collapse:collapse;mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-border-insideh:2.25pt solid white;mso-border-insidev:2.25pt solid white'> <tr style='mso-yfti-irow:-1;mso-yfti-firstrow:yes'> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;background:#CCCCCC;mso-shading:white; mso-pattern:gray-20 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" style='mso-yfti-cnfc:1'> <b>File Type</b> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;background:#CCCCCC;mso-shading:white; mso-pattern:gray-20 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" style='mso-yfti-cnfc:1'> <b>Friendly Type</b> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-left-alt:solid white 2.25pt; background:#CCCCCC;mso-shading:white;mso-pattern:gray-20 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" style='mso-yfti-cnfc:1'> <b>Total Size (Mb)</b> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-left-alt:solid white 2.25pt; background:#CCCCCC;mso-shading:white;mso-pattern:gray-20 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" style='mso-yfti-cnfc:1'> <b>Total Files</b> </p> </td> <td valign="top" style='border:none;border-bottom:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#CCCCCC;mso-shading:white; mso-pattern:gray-20 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" style='mso-yfti-cnfc:1'> <b>Total Estimated Pages</b> </p> </td> </tr> <xsl:for-each select="NewDataSet/Report"> <xsl:choose> <xsl:when test="position() mod 2 = 0"> <tr> <xsl:choose> <xsl:when test="string-length($detailed) > 0"> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; background:#F2F2F2;mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <a> <xsl:attribute name="href"> <xsl:value-of select="concat($indexPath,'\_',filetype,'.html')" /> </xsl:attribute> <xsl:value-of select="filetype" /> </a> </p> </td> </xsl:when> <xsl:otherwise> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; background:#F2F2F2;mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <xsl:value-of select="filetype" /> </p> </td> </xsl:otherwise> </xsl:choose> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#F2F2F2;mso-shading:white; mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <xsl:value-of select="friendlytype" /> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#F2F2F2;mso-shading:white; mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <xsl:value-of select="format-number(kbytes div 1024,'###,###,##0.###')" /> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#F2F2F2;mso-shading:white; mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <xsl:value-of select="format-number(count, '###,###,##0')" /> </p> </td> <td valign="top" style='border:none;border-bottom:solid white 2.25pt; mso-border-top-alt:solid white 2.25pt;mso-border-left-alt:solid white 2.25pt; background:#F2F2F2;mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <xsl:value-of select="format-number(pages, '###,###,##0.#')" /> </p> </td> </tr> </xsl:when> <xsl:otherwise> <tr> <xsl:choose> <xsl:when test="string-length($detailed) > 0"> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; background:#CCCCCC;mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <a> <xsl:attribute name="href"> <xsl:value-of select="concat($indexPath,'\_',filetype,'.html')" /> </xsl:attribute> <xsl:value-of select="filetype" /> </a> </p> </td> </xsl:when> <xsl:otherwise> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; background:#CCCCCC;mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <xsl:value-of select="filetype" /> </p> </td> </xsl:otherwise> </xsl:choose> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#CCCCCC;mso-shading:white; mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <xsl:value-of select="friendlytype" /> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#CCCCCC;mso-shading:white; mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:128'> <xsl:value-of select="format-number(kbytes div 1024,'###,###,##0.###')" /> </p> </td> <td valign="top" style='border-top:none;border-left:none;border-bottom:solid white 2.25pt; border-right:solid white 2.25pt;mso-border-top-alt:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#CCCCCC;mso-shading:white; mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:128'> <xsl:value-of select="format-number(count, '###,###,##0')" /> </p> </td> <td valign="top" style='border:none;border-bottom:solid white 2.25pt; mso-border-top-alt:solid white 2.25pt;mso-border-left-alt:solid white 2.25pt; background:#CCCCCC;mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:128'> <xsl:value-of select="format-number(pages, '###,###,##0.#')" /> </p> </td> </tr> </xsl:otherwise> </xsl:choose> </xsl:for-each> <tr style='mso-yfti-irow:2;mso-yfti-lastrow:yes'> <td valign="top" style='border:none;border-right:solid white 2.25pt;mso-border-top-alt: solid white 2.25pt;background:#F2F2F2;mso-shading:white;mso-pattern:gray-5 black; padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <b>Total</b> </p> </td> <td valign="top" style='border:none;border-right:solid white 2.25pt;mso-border-top-alt: solid white 2.25pt;background:#F2F2F2;mso-shading:white;mso-pattern:gray-5 black; padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> </p> </td> <td valign="top" style='border:none;border-right:solid white 2.25pt;mso-border-top-alt: solid white 2.25pt;mso-border-left-alt:solid white 2.25pt;background:#F2F2F2; mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <b> <xsl:value-of select="format-number(sum(NewDataSet/Report/kbytes) div 1024,'###,###,##0.###')" /> </b> </p> </td> <td valign="top" style='border:none;border-right:solid white 2.25pt;mso-border-top-alt: solid white 2.25pt;mso-border-left-alt:solid white 2.25pt;background:#F2F2F2; mso-shading:white;mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <b> <xsl:value-of select="format-number(sum(NewDataSet/Report/count), '###,###,##0')" /> </b> </p> </td> <td valign="top" style='border:none;mso-border-top-alt:solid white 2.25pt; mso-border-left-alt:solid white 2.25pt;background:#F2F2F2;mso-shading:white; mso-pattern:gray-5 black;padding:0in 5.4pt 0in 5.4pt'> <p class="MsoNormal" align="center" style='text-align:center;mso-yfti-cnfc:64'> <b> <xsl:value-of select="format-number(sum(NewDataSet/Report/pages), '###,###,##0.#')" /> </b> </p> </td> </tr> </table> </div> </body> </html> </xsl:template> </xsl:stylesheet> Here is the C# code: private void RenderReport(string reportXml, string sXsltFile, string sOutfile, int nOption ) { //Option 1=detailed, 2=summary DisplayStatusMsg(0,"Processing"); DisplayStatusMsg(1,"Creating detailed report " + sOutfile); Application.DoEvents(); try { //read data for this report StreamReader reader = new StreamReader(reportXml); //preps xml to be transformed XPathDocument document = new XPathDocument(reader); //load the xslt StreamReader fReader = new StreamReader(sXsltFile); XmlTextReader xmlReader = new XmlTextReader(fReader); XslTransform xslt = new XslTransform(); xslt.Load(xmlReader, null, null); DataSet dsFiles = new DataSet(); dsFiles.ReadXml(reportXml); Application.DoEvents(); //get the file inventory path string sFiletypePath = GetInventoryPath(dsFiles); FileInfo fii = new FileInfo(sOutfile); //create a subfolder name by changing backslashes in the path to underscores string sSubdir = CreateFilename(sFiletypePath); //the path for the <type>.html files string sHtmlPath=""; if (fii.DirectoryName.EndsWith("\\")) sHtmlPath = fii.DirectoryName + sSubdir; else sHtmlPath = fii.DirectoryName + "\\"+ sSubdir; if ( nOption == 1 ) { //for detailed report, copy html files to the report subdirectory //clean up the subdirectory if it exists; create if it doesn't exist. DisplayStatusMsg(1,"Cleaning up report subdirectory"); CleanupDirectory(sHtmlPath); Application.DoEvents(); //copy <type>.html files to the report location subfolder. DisplayStatusMsg(1,"Copying html files for each file type"); CopyHtmls(this.m_sWritePath,sHtmlPath); Application.DoEvents(); } XsltArgumentList xsltArg = new XsltArgumentList(); xsltArg.AddParam("logoPath", "", m_sLogoPath); xsltArg.AddParam("indexPath", "", sSubdir); string sCancelMsg = GetCancelMsg(dsFiles); xsltArg.AddParam("cancelMsg", "", sCancelMsg); if (nOption == 1 ) xsltArg.AddParam("detailed","","1"); else xsltArg.AddParam("detailed","",""); // create the output stream object XmlTextWriter writer = new XmlTextWriter(sOutfile, Encoding.Default); // transform the report xslt.Transform(document,xsltArg,writer,null); writer.Close(); xmlReader.Close(); fReader.Close(); reader.Close(); } catch ( Exception e ) { MessageBox.Show("Error rendering report: " + e.Message); } DisplayStatusMsg(1,""); DisplayStatusMsg(0,"Ready"); } Mars *** Sent via Developersdex http://www.developersdex.com *** | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
