@@ -141,55 +141,58 @@ public IEnumerable<XElement> TransformElement(XElement root, XElement originalEl
141141 throw new Exception ( "Unknown variable source '" + variableSplit [ 0 ] + "'" ) ;
142142 }
143143
144- XElement targetEl ;
144+ List < XElement > targetEls ;
145145 if ( variableSplit [ 1 ] . Length > 0 )
146146 {
147- targetEl = GetElements ( sourceEl , variableSplit [ 1 ] ) . FirstOrDefault ( ) ;
147+ targetEls = GetElements ( sourceEl , variableSplit [ 1 ] ) ;
148148 }
149149 else
150150 {
151- targetEl = sourceEl ;
151+ targetEls = new List < XElement > ( ) { sourceEl } ;
152152 }
153153
154- string variableValue ;
155- if ( targetEl == null )
154+ foreach ( var targetEl in targetEls )
156155 {
157- variableValue = "" ;
158- }
159- else if ( variableSplit [ 2 ] == "name" )
160- {
161- variableValue = targetEl . Name . ToString ( ) ;
162- }
163- else if ( variableSplit [ 2 ] == "contents" )
164- {
165- if ( targetEl . HasElements )
156+ string variableValue ;
157+ if ( targetEl == null )
166158 {
167159 variableValue = "" ;
168- foreach ( var el in targetEl . Elements ( ) )
160+ }
161+ else if ( variableSplit [ 2 ] == "name" )
162+ {
163+ variableValue = targetEl . Name . ToString ( ) ;
164+ }
165+ else if ( variableSplit [ 2 ] == "contents" )
166+ {
167+ if ( targetEl . HasElements )
168+ {
169+ variableValue = "" ;
170+ foreach ( var el in targetEl . Elements ( ) )
171+ {
172+ variableValue += el . ToString ( ) ;
173+ }
174+ }
175+ else
169176 {
170- variableValue += el . ToString ( ) ;
177+ variableValue = targetEl . Value ;
171178 }
172179 }
180+ else if ( variableSplit [ 2 ] == "refkey" )
181+ {
182+ variableValue = targetEl . Attribute ( DataDefinition . MetaNS + "RefKey" ) . Value ;
183+ }
184+ else if ( ! string . IsNullOrWhiteSpace ( variableSplit [ 2 ] ) )
185+ {
186+ throw new Exception ( "Unknown variable part type '" + variableSplit [ 2 ] + "'!" ) ;
187+ }
173188 else
174189 {
175- variableValue = targetEl . Value ;
190+ variableValue = targetEl . ToString ( ) ;
176191 }
177- }
178- else if ( variableSplit [ 2 ] == "refkey" )
179- {
180- variableValue = targetEl . Attribute ( DataDefinition . MetaNS + "RefKey" ) . Value ;
181- }
182- else if ( ! string . IsNullOrWhiteSpace ( variableSplit [ 2 ] ) )
183- {
184- throw new Exception ( "Unknown variable part type '" + variableSplit [ 2 ] + "'!" ) ;
185- }
186- else
187- {
188- variableValue = targetEl . ToString ( ) ;
189- }
190- variableValue = variableValue . Replace ( "xmlns:meta=\" Editor\" " , "" ) ;
192+ variableValue = variableValue . Replace ( "xmlns:meta=\" Editor\" " , "" ) ;
191193
192- expandedTemplate += variableValue ;
194+ expandedTemplate += variableValue ;
195+ }
193196 }
194197 else
195198 {
0 commit comments