2010-02-24 32 views
7

Jestem zainteresowany pisaniem czegoś podobnego do zagnieżdżonej pętli przy użyciu silnika szablonu StringTemplate. W języku C# istnieje tablica haszów, w której każdy klucz zawiera listę obiektów dokumentów, każdy dokument ma tytuł i źródło. Na początku chciałbym podać listę podsumowań tytułów dokumentów na źródło.Zagnieżdżona pętla w StringTemplate

<h1>Summary</h1> 
<h2>Source A</h2> 
<ul> 
    <li>title 1</li> 
    <li>title 2</li> 
</ul> 
<h2>Source B</h2> 
<ul> 
    <li>title 3</li> 
    <li>title 4</li> 
</ul> 

Jaki jest najlepszy sposób na osiągnięcie tego przy pomocy StringTemplate?

Odpowiedz

11

Zakładając, że przekształca je do odpowiednich struktur danych - Source klasa ma getName i getDocuments metod i Document klasa ma getTitle metody, będzie to wyglądać tak:

$ 
sources: 
{ 
    source| 
    <h2>Source $source.name$ </h2> 
    $ 
    source.documents: 
    { 
     document| 
     <li>title $document.title$</li> 
    } 
    $ 
} 
$ 
+0

jest to dobra odpowiedź na ogólnych przedmiotów, ale nie w ork dla HashTable. –

+1

Czy możesz pokazać mi sposób, w jaki wyglądają twoje obiekty haseł i dokumentów? Z hashtable możesz użyć składni 'ht.keys: {k | coś}'. – viaclectic