xml文字列をHTML文字列に変換するために.NETクラスライブラリでXslCompiledTransform
を使用しようとしています。私はファイルではなく普通の文字列を使いたいと考えてください。XSLを.NET XslCompiledTransformクラスを使用して有効なHTMLフラグメントに変換するXslCompiledTransformクラス
これはどのように行うのですか? XslCompiledTransform
はファイルだけで動作するようです
...
xml文字列をHTML文字列に変換するために.NETクラスライブラリでXslCompiledTransform
を使用しようとしています。私はファイルではなく普通の文字列を使いたいと考えてください。XSLを.NET XslCompiledTransformクラスを使用して有効なHTMLフラグメントに変換するXslCompiledTransformクラス
これはどのように行うのですか? XslCompiledTransform
はファイルだけで動作するようです
...
Load()
もXmlReader
を受け入れ、そしてTransform()
はXmlReader
入力、およびXmlWriter
、TextWriter
および出力としてStream
のほとんどの組み合わせを受け入れます。
最も一般的には、出力にはStringWriter
、入力にはStringReader
から作成されたXmlReader
を使用することがあります。
全例、どのファイル:
string xslt = @"<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
<xsl:output method=""html"" indent=""no""/>
<xsl:template match=""*"">
<p>some html</p>
</xsl:template>
</xsl:stylesheet>", xml = @"<xml>boo</xml>";
var transform = new XslCompiledTransform();
using (var sr = new StringReader(xslt))
using (var xr = XmlReader.Create(sr))
{
transform.Load(xr);
}
using (var sw = new StringWriter())
using (var sr = new StringReader(xml))
using (var xr = XmlReader.Create(sr))
{
transform.Transform(xr, null, sw);
string html = sw.ToString();
}
私は が、その後にStringWriter、 を使用してHTMLに変換し、同じ.aspxページ上で生成される文字列の形式で使用するXSLTおよびXML、 を持っていませんリテラルコントロールを使用してhtmlを表示し、Stringwriterデータをバインドします。
string xslt = "ここにxsltのコードを追加"; //通常のxsltファイルを探します。
string xml = "ここにxmlのコードを追加"; //通常のxmlファイルを探します。
XslCompiledTransform transform = new XslCompiledTransform();
StringReader sr = new StringReader(xslt);
XmlReader xr = XmlReader.Create(sr);
transform.Load(xr);
StringReader srxml = new StringReader(xml);
XmlReader xrxml = XmlReader.Create(srxml);
StringWriter writer = new StringWriter();
transform.Transform(xrxml, null, writer);
Literal1.Text = writer.ToString();
writer.Close();