2011-01-18 6 views
1

C#アプリケーションで次のXSLブロックを生成しようとしています。誰も私にそれをどう教えてもらえますか?C#でXSLブロックを生成する

<XSL-Script xmlns:xsl="http://www.w3.org/......"> 
    <xsl:value-of select="$VAR"> 
</XSL-Script> 

私は、通常のC#のXMLクラスを使用しようとした、そしてそれは、XSLを削除:タグ名から、それはXSLを考えているので:名前空間があります。また、 "select"の属性値にVARの前に "$"を使用することもできません。

ありがとうございます。ここ

+1

@ user579242:この質問は明確ではありません。入力サンプル、希望する出力、問題のあるスタイルシート(またはフラグメント)、プラットフォームの詳細(XSLTプロセッサ、バージョンなど) –

答えて

1

は、単純なC#プログラムは、完全なXSLTスタイルシートを「生成」、次いで「発生」XML文書にこの変換を実行し、ファイルへの変換の結果を出力することである:

using System.IO; 
using System.Xml; 
using System.Xml.Xsl; 

    class testTransform 
    { 
     static void Main(string[] args) 
     { 
      string xslt = 
@"<xsl:stylesheet version='1.0' 
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> 
<xsl:variable name='vX' select='1'/> 

<xsl:template match='/'> 
<xsl:value-of select='$vX'/> 
</xsl:template> 
</xsl:stylesheet>"; 

      string xml = @"<t/>"; 

      XmlDocument xmlDoc = new XmlDocument(); 
      xmlDoc.LoadXml(xml); 

      XmlDocument xslDoc = new XmlDocument(); 
      xslDoc.LoadXml(xslt); 

      XslCompiledTransform xslTrans = new XslCompiledTransform(); 

      xslTrans.Load(xslDoc); 

      xslTrans.Transform(xmlDoc, null, new StreamWriter("output.txt")); 
     } 
    } 

このアプリケーションが構築され、実行されるとそれは"output.txt"という名前のファイルを作成し、その内容が期待され、動的に生成されたXSLT変換から、正しい結果:

<?xml version="1.0" encoding="utf-8"?>1 
関連する問題