public void RepeatExtensionWithBodyOption() { var x = new BxlParser().Parse(@" e x xi-repeat=data xi-body xi-expand x-code ${mycode} x-name ${myname} ", options: BxlParserOptions.NoLexData | BxlParserOptions.ExtractSingle); var ctx = new { data = new object[] { new { mycode = 2, myname = "Two" }, new { mycode = 3, myname = "Three" } } }; x = x.Interpolate(ctx); Console.WriteLine(x.ToString().Replace("\"", "'")); Assert.AreEqual(@"<e> <x-code code='2' id='2' /> <x-name code='Two' id='Two' /> <x-code code='3' id='3' /> <x-name code='Three' id='Three' /> </e>".Simplify(SimplifyOptions.Full), x.ToString().Simplify(SimplifyOptions.Full)); }
public void RepeatLocalSetExtension() { var x = new BxlParser().Parse(@" xi-dataset x x x=${mycode} y=${myname} xi-repeat=data xi-expand e u=33 i ${x}${x} ${y}${y} z=${u} xi-repeat=$x xi-expand ", options: BxlParserOptions.NoLexData | BxlParserOptions.ExtractSingle); var ctx = new { data = new object[] { new { mycode = 2, myname = "Two" }, new { mycode = 3, myname = "Three" } } }; x = x.Interpolate(ctx); Console.WriteLine(x.ToString().Replace("\"", "'")); Assert.AreEqual(@"<root> <xi-dataset code='x' id='x'> <x x='2' y='Two' /> <x x='3' y='Three' /> </xi-dataset> <e u='33'> <i code='22' id='22' name='TwoTwo' z='33' /> <i code='33' id='33' name='ThreeThree' z='33' /> </e> </root>".Simplify(SimplifyOptions.Full), x.ToString().Simplify(SimplifyOptions.Full)); }