C#XSLT转换添加
及#除息的;输出

C#XSLT转换添加
及#除息的;输出,c#,xslt,whitespace,C#,Xslt,Whitespace,我有一个XSLT转换问题: style="width:{Data/PercentSpaceUsed}%;" 并且Data/PercentSpaceUsed的值是整数3 它输出: style="width:
 3
 %;" 而不是我所期望的: style="width:3%;" 下面是执行转换的代码:xslt\u xslt是转换xml,sw.ToString()包含&xD和 这是我没想到的 var xslTra

我有一个XSLT转换问题:

style="width:{Data/PercentSpaceUsed}%;"
并且Data/PercentSpaceUsed的值是整数3

它输出:

style="width:
     3
 %;"
而不是我所期望的:

style="width:3%;"
下面是执行转换的代码:
xslt\u xslt
是转换xml,
sw.ToString()
包含
&xD

这是我没想到的

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如下所示

<Value>3</Value>
3
而不是

<Value>
    3
</Value>

3.

我相信有一种方法可以阻止在您的转换中使用空格,尽管我对它一无所知。

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

style="width:{normalize-space(Data/PercentSpaceUsed)}%;"
去掉空白。在您的情况下,另一个选择是使用

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

用于在属性值的输出上保留输入空格


注意:在上述设置中,制表符用于缩进

实际上类似于:style=“width:{Data/PercentSpaceUsed}%;”但数据文件有回车:-(嗨,我的XML中有空格,就像Robin说的。我只是通过删除空格解决了这个问题。@Patrick这是一条评论。这就是评论的目的。在赢得50个代表之前,你不能发表评论。但是,如果你坚持在你提出的每个问题或答案中都塞进一个巨大的签名,并带有到你的博客的链接,你永远不会得到答案50代表。提升自己的最佳方式是更新个人资料并提供高质量的答案。此外,请阅读。

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