2016-10-10 2 views
-2

저는 C#으로 작업합니다. XSL 변환 (XSLT) 버전 1.0을 사용합니다. https://www.w3.org/TR/xslt 내가 MyClass에 템플릿과 일치xslt에서 문자열 목록을 반복하고 인덱스를 사용합니다.

List<string> Strings 

내가 그것을 이런 식으로 내 보내야 속성이 MyClass에 클래스의 데이터에서 XML을 생성하기 위해 XSLT를 사용

<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

관련 문제