2016-10-10 19 views
-2

私はC#で働いています。 私はXSL変換(XSLT)バージョン1.0を使用します。 https://www.w3.org/TR/xslt 私はクラスMyClassの のMyClassのデータからXMLを作成するために、XSLTを使用するには、テンプレートと一致し、私はそれをこのようにエクスポートする必要があるプロパティxsltの文字列のリストを繰り返し、インデックスを使用する

List<string> Strings 

があります

<Line1> first string value Here </Line1> 
<Line2> Second string value here </Line2> 
. 
. 
. 

でした誰かが私にそれをする方法を実現するのを助けますか? タル

+0

私はそれを得ていません。より明示的なXMLソースサンプルを提供できますか? – Xenos

+0

あなたは「テンプレートにプロパティを一致させるクラスがあります」と言っています。どのプログラミング言語でそれがありますか?どのXSLTプロセッサを使用しますか? XSLTと他のプログラミング言語との相互作用は、特定のプロセッサ、そのAPI、プログラミングプラットフォームに大きく依存します。 –

+0

私はJavaでXSLTをよく知っていますが、これはXSLTのようには見えません。あなたはXMLシリアライザを探しています。 XSLTは、XMLを異なるXMLに変換するためのものです。いくつかのグーグルグーグルでは、[C#でオブジェクトをXMLにシリアル化する方法](https://support.microsoft.com/en-us/kb/815813)が見つかりました。 –

答えて

0

。私はこれを使用している

public class MyExportClass 
{ 
    [XmlElement("LOS"] 
    public List<StringObject> LOS<get; set;} 
} 

:XSLTと一致するMyExportClassがされ、私はプロパティとしてリストを作成している

public class ExportString 
{ 
    [XmlElement("StringObject")] 
    public string StringObject{get; set;} 
} 

:たぶんそこ ...より良いものです私は新しいExportClassを作成しましたXSLTでの構文:

<xsl:for-each select="LOS" xml:space="default"> 

//Get the index 
    <xsl:variable name ="index" select="position()"/> 

    <xsl:element name ="Line{$index}"> 
    <xsl:value-of select = "StringObject"/> 
    </xsl:element> 

    //Line break 
    <xsl:text> &#xa;</xsl:text> 
</xsl:for-each> 

結果:

コードは、要素の名前のインデックスを含んでいます
<Line1> my first string </Line1> 
<Line2> my second string </Line2> 
. 
. 
. 
1

非常にシンプルなすべてのベスト:私は解決策を見つけた

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Xml; 
using System.Xml.Linq; 


namespace ConsoleApplication16 
{ 
    class Program 
    { 

     static void Main(string[] args) 
     { 
      List<string> Strings = new List<string>() { 
        "first string value Here", 
        "Second string value here" 
      }; 

      List<XElement> output = Strings.Select((x, i) => new XElement("Line" + (i + 1).ToString(), x)).ToList(); 
     } 

    } 

} 
+0

ありがとうございました。私はxsltテンプレートを使用する必要があります。 – tal

関連する問題