hier noch mehr Infos dazu (auch weitere posts im Topic beachten)
und man kann die table auch nachträglich ändern, siehe verlinkter Post (Allerdings ohne konkrete beispiele)
und in meinem beispiel habe ich 2 Schlüssel definiert, $key und $key2, um zu zeigen wie man diese trennt
wenn du objekte oder Zahlen als key verwenden wills machst du das bei der Definition so (beispiel mit allen 3 möglichkeiten für Keys, die resultierenden Values sind alle Strings) - und so wie ich dich verstanden habe willst du nen String als key, was laut o.g. erklärunga auch gehen sollte (4. Eintrag den ich in dieser beispiel-table setze)
<set_value name="$table" exact="table[$key='Key',{$object}='Objekt',{1}='Number',{'$String'}='String']/>
Lesen kannst du diese Werte so (ich nehm jetzt mal show_notification als beispiel, kann auch wo anders her genommen werden)
<show_notification caption="$table.$key"/>
<show_notification caption="$table.{$object}"/>
<show_notification caption="$table.{1}"/>
<show_notification caption="$table.{'$String'}"/>
und nachträgliches modifizieren geht mit <set_value/> und <remove_value/>, hier füg ich mal nen 2. Key als String ein, gebe ihn als notification aus, prüfe ihn auf existenz und wenn ja und entferne ich ihn wieder:
<set_value name="$table.{'$String2'}" exact="'another String'"/>
<show_notification caption="$table.{'$String2'}"/>
<do_if value="$table.{'$String2'}?">
<remove_value name="$table.{'$String2'}"/>
</do_if>
EDIT:Korrektur: Key-Strings müssen mit $ beginnen!
Ausserdem sind $table.{'$key'} und $table.$key gleichbedeutend.. aber das änder ich jetzt nicht mehr..