2009-05-11 15 views
18

に と を追加変換:C#のXSLTは、私が問題に変換するXSLTを持って出力

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

とデータ/ 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(); 
+0

こんにちは、 のために使用されています。私は単にスペースを削除するだけで問題を解決しました。 –

+4

@パトリックこれはコメントです。これはコメントのためのものです。あなたは50の報酬を得るまであなたはコメントすることができません。しかし、すべての質問や回答であなたのブログへのリンクが付いている巨大な署名を詰まらせることを主張するなら、決して50人の担当者を得ることはありません。あなた自身を促進する最も良い方法は、あなたのプロフィールを更新して良質の回答を提供することです。また、[faq](http://stackoverflow.com/faq)もお読みください。 – Will

答えて

27


は、XMLまたはXSLT内の改行と改行です。 XMLは

<Value>3</Value> 

よう

よりもむしろ

<Value> 
    3 
</Value> 

であることを確認し、私は私が私の頭の上にそれを知っている `tをが空白あなたの転換の中で使用されて停止する方法があると信じています。

+0

実際にはそれはlikeです:style = "width:{Data/PercentSpaceUsed}%;" – DMCS

+0

しかし、データファイルにはキャリッジリターンがあります:-( – DMCS

11

ソースドキュメントから空白があります。

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

を使用して空白を取り除きます。あなたのケース内の他のオプションは、

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

を用いることであろう属性値の出力に保存する入力空白のため


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

を試してみてください。

注:上記の設定で、タブがロビンが言ったように私は私のXMLにスペースを持っていたインデント

+0

私はこれが尋ねられたものだとは思わない –