C#XSLT转换添加
 和
 到输出

我有一个XSLT转换问题:

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

Data / PercentSpaceUsed的值是整数3。

它输出:

 style="width:
 3
 %;" 

而不是我的预期:

 style="width:3%;" 

这是执行转换的代码: xslt_xslt是转换xml, sw.ToString()包含 这是我没想到的。

 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(); 

是XML或XSLT中的回车和换行符。 确保xml是这样的

 3 

而不是

  3  

我相信有一种方法可以阻止在你的转型中使用空格,虽然我不知道它在我的头顶。

您从源文档中获取空格。 使用

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

去除空白。 您的另一种选择是使用

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

尝试

 XmlWriterSettings settings = new XmlWriterSettings(); settings.OmitXmlDeclaration = true; settings.Indent = true; settings.IndentChars = "\t"; settings.NewLineHandling = NewLineHandling.None; XmlWriter writer = XmlWriter.Create(xmlpath, settings); 

输入空格,以便在输出中保留属性值。

注意:使用上述设置,标签用于缩进