views:

4321

answers:

3

I have an XSLT transform issue:

style="width:{Data/PercentSpaceUsed}%;"

And the value of Data/PercentSpaceUsed is integer 3.

And it outputs:

style="width:
  3
 %;"

instead of what I expected:

style="width:3%;"

Here's the code that does the transform: xslt_xslt is the transform xml, sw.ToString() contains the "& # x D ;" (no spaces) and "& # x A ;" (no spaces) which I did not expect.

var xslTransObj = new XslCompiledTransform();
var reader = new XmlTextReader(new StringReader(xslt_xslt));
xslTransObj.Load(reader);
var sw = new StringWriter();
var writer = new XmlTextWriter(sw);
xslTransObj.Transform(new XmlTextReader(new StringReader(xslt_data)), writer);

ResultLiteral.Text = sw.ToString();
+2  A: 

The 
 are carriage returns and line spaces either within your XML or your XSLT. Make sure the xml is like

<Value>3</Value>

Rather than

<Value>
    3
</Value>

I believe there is a way to stop whitespace being used within your transformation although I don`t know it off the top of my head.

Robin Day
actually it is like: style="width:{Data/PercentSpaceUsed}%;"
But the data file had carriage returns :-(
+3  A: 

You're getting whitespace from the source document. Use

style="width:{normalize-space(Data/PercentSpaceUsed)}%;"

to strip out the whitespace. The other option in your case would be to use

style="width:{number(Data/PercentSpaceUsed)}%;"
jelovirt
A: 

Hi, i had spaces in my XML like Robin said. I solved the issue by simply removing the spaces.

Thank you

Patrick Lamber

http://patricklamber.blogspot.com (SharePoint, ASP.NET)

Patrick Lamber