21

我有一个 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();
4

3 回答 3

30

它们是 XML 或 XSLT 中的
回车和换行。确保xml就像

<Value>3</Value>

而不是

<Value>
    3
</Value>

我相信有一种方法可以阻止在您的转换中使用空格,尽管我不知道它是否在我的脑海中。

于 2009-05-11T16:16:39.053 回答
11

您正在从源文档中获取空格。利用

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

去除空格。在您的情况下,另一个选择是使用

style="width:{number(Data/PercentSpaceUsed)}%;"
于 2009-05-11T19:19:16.853 回答
3

尝试


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

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

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

于 2011-03-10T19:44:29.750 回答