views:

334

answers:

1

Im interested in writting something similar to a nested loop using StringTemplate template engine. In C# have a HashTable of which each Key contains List of Document objects, each Document has a title and source. I would like to list at the beggining of an email, a summary of the document titles per source.

<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>

What is the best way to accomplish this with StringTemplate?

+1  A: 

Assuming you've transformed these to appropriate data structures -- Source class having getName and getDocuments methods, and Document class having getTitle method, it will look like this:

$
sources:
 {
    source|
    <h2>Source $source.name$ </h2>
    $
    source.documents:
     {
      document|
      <li>title $document.title$</li>
     }
    $
 }
$
kohomologie
This is a good answer for general objects, but does not work for a HashTable.
Benjamin Ortuzar
Could you show me a way how your hashtable and document objects look like? With hashtable, you may use `ht.keys:{k|something}` syntax.
kohomologie