、次のコードを書くより速く、より簡潔な方法がある:ASP.NETでXSLT変換を実行する最も合理的な方法は何ですか?つまり
//Create an object for performing XSTL transformations
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(HttpContext.Current.Server.MapPath("/xslt/" + xsltfile.Value), new XsltSettings(true, false), new XmlUrlResolver());
//Create a XmlReader object to read the XML we want to format
//XmlReader needs an input stream (StringReader)
StringReader sr = new StringReader(node.OuterXml);
XmlReader xr = XmlReader.Create(sr);
//Create a StringWriter object to capture the output from the XslCompiledTransform object
StringWriter sw = new StringWriter();
//Perform the transformation
xslt.Transform(xr, null, sw);
//Retrieve the transformed XML from the StringWriter object
string transformedXml = sw.ToString();
はUPDATE(すべての答えてくれてありがとう今のところ!):
私の曖昧さのため申し訳ありません: "でより速く "より簡潔に" 私は何か不必要なステップを含んでいますか?また、私は誰かが持っているより多くの "可読な"解が好きです。私は開発中のWebアプリケーションの小さな部分でこのコードを使用していますが、アプリケーションの大部分に移動しようとしていますので、移動前にできるだけ素敵なものにしておきたい。
また、データベースと通信する(別のデータアクセスクラスライブラリ内の)静的クラスからXMLを取得します。また、変換されたXML文字列を操作してWebページに出力します。この場合、入力/応答ストリームがまだ有効かどうかはわかりません。
もう1つ:XMLとXSLTが変更される可能性があります(アプリケーションのユーザーは両方を変更できます)ので、毎回コンパイルする必要があります。
おそらく上記のコードを書くより読みやすい方法があると思いますが、そこには必須のステップがあります。私はあなたが「速い」とはどういう意味か分かりません。 – Lee
xmlがクライアント側に表示されるように変換する場合は、asp:XMLコントロールを使用していない理由がありますか?変換された文字列を表示する方が簡単ですが、ブラウザ側でどのように使用しているのか分かりません。 http://msdn.microsoft.com/en-us/library/63cbk9e7(VS.85).aspx –
@Jim asp:XMLコントロールは古くて遅いXslTransformクラスを使用しているため非難されています - http://を参照してくださいwww.tkachenko.com/blog/archives/000513.html恥ずべきものだった。 –