# -*- ruby -*-
#
# Using '*' and '**' in data ID.
#

require 'xtemplate'

text = <<EOF
<?xml version="1.0"?>
<data>
<members>
  <member id="/*[name and age]">
     <name id="name"></name>
     <age id="age"></age>
  </member>
</members>
<members>
  <member id="/**[name and age]">
     <name id="name"></name>
     <age id="age"></age>
  </member>
</members>
</data>
EOF

data = {
  "members" => [
    {"name" => "name1", "age" => 21},
    {"name" => "name2", "age" => 22},
    {"name" => "name3"},
  ],
  "staff" => {
    "staff1" => [
       {"name" => "name4", "age" => 24},
       {"name" => "name5", "age" => 27},
    ],
    "staff2" => [
       {"name" => "name6", "age" => 28},
       {"name" => "name7"},
    ],
  }
}

print XTemplate::XMLTemplate.new(text).expand(data)