2010-02-24 4 views
7

Ich bin daran interessiert, etwas ähnlich einer verschachtelten Schleife mit StringTemplate Template Engine zu schreiben. In C# eine HashTable, von der jeder Schlüssel Liste der Dokumentobjekte enthält, jedes Dokument hat einen Titel und eine Quelle. Ich möchte am Anfang einer E-Mail eine Zusammenfassung der Dokumenttitel pro Quelle auflisten.Verschachtelte Schleife in 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> 

Was ist der beste Weg, dies mit StringTemplate zu erreichen?

Antwort

11

Angenommen, Sie haben diese entsprechende Datenstrukturen transformiert - Source Klasse getName und getDocuments Methoden mit und Document Klasse mit getTitle Methode, wird es wie folgt aussehen:

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

, aber nicht w Ork für eine HashTable. –

+1

Können Sie mir einen Weg zeigen, wie Ihre Hashtable- und Dokumentobjekte aussehen? Mit der Hashtabelle können Sie die Syntax "ht.keys: {k | something}" verwenden. – viaclectic