0

xml要素の長いリストがあります。

各要素はIDとPARENT_IDを取得しました。

これに基づいてサイトマップ/ネストされたリストを作成するにはどうすればよいですか?null値の要素は、最上位の親要素です。

ULとLIのリストをHTMLで表示したいと思います。

<ROOT>
<SITEMAP>
    <ARRAY>
        <ID>1</ID>
        <NAME>Test</NAME>
        <PARENT_ID>NULL</PARENT_ID>
    </ARRAY>
    <ARRAY>
        <ID>2</ID>
        <NAME>Test2</NAME>
        <PARENT_ID>3</PARENT_ID>
    </ARRAY>
    <ARRAY>
        <ID>3</ID>
        <NAME>Test3</NAME>
        <PARENT_ID>NULL</PARENT_ID>
    </ARRAY>
    <ARRAY>
        <ID>4</ID>
        <NAME>Test4</NAME>
        <PARENT_ID>1</PARENT_ID>
    </ARRAY>
    <ARRAY>
        <ID>5</ID>
        <NAME>Test5</NAME>
        <PARENT_ID>4</PARENT_ID>
    </ARRAY>
</SITEMAP>

4

1 に答える 1

1

キーテンプレートは次のようになります。

<xsl:template matches="ARRAY"> 
   <xsl:variable name="id" select="ID"/>
   <output>
      <!-- output goes here -->
      ...
      <!-- now process every ARRAY with a PARENT_ID equal to the current node's id. (I.e. its children.) -->
      <xsl:apply-templates select="/ROOT/SITEMAP/ARRAY[PARENT_ID = $id]"/>
   </output>
</xsl:template>

そして、あなたはそれを次のように開始します:

<xsl:template matches="/">
   <xsl:apply-templates select="/ROOT/SITEMAP/ARRAY[PARENT_ID = 'NULL']"/>
</xsl:template>

ただし、階層にサイクルがある場合、この変換は無限に実行されることに注意してください。

于 2012-06-28T11:02:48.320 に答える