2016-06-16 16 views
0

要素名の繰り返しのようなことをしようとしています。最初のリストの中反復要素のXSLT変換リスト

<newlist> 
    <Person> 
     <ID>ID 1</ID> 
     <Name>name 1</Name> 
     <Town>town 1</Town> 
    </Person> 
    <Person> 
     <ID>ID 2</ID> 
     <Name>name 2</Name> 
     <Town>town 2</Town> 
    </Person> 
    <!-- more Persons here --> 
</newlist> 

エントリは常に同じように繰り返しているので、どのような:私は私の目標スキームはそのように見えることになっている今、

<list> 
    <element1>ID 1</element1> 
    <element2>name 1</element2> 
    <element3>town 1</element3>   
    <element4>ID 2</element4> 
    <element5>name 2</element5> 
    <element6>town 2</element6> 
    <!-- list continues like that --> 
</list> 

の形式で入力を与えられていますそれらを反復し、モジュロ演算子をループカウンタに適用して、エントリをマッピングするべき正しい要素を見つけ出すことが私の心に浮かんできました。 しかし、私はこのような変換を見つけることができませんでした。ここに行く方法は何ですか?

答えて

1

この方法でお試しいただけますか?

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:template match="/list"> 
    <xsl:for-each select="*[position() mod 3 = 1]"> 
     <Person> 
      <ID> 
       <xsl:value-of select="."/> 
      </ID> 
      <Name> 
       <xsl:value-of select="following-sibling::*[1]"/> 
      </Name> 
      <Town> 
       <xsl:value-of select="following-sibling::*[2]"/> 
      </Town> 
     </Person> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 
+0

は、それが働いて、どうもありがとうございました! – user3190009

関連する問題