вот у темя есть нужная для вас функция:

Код AS3:
static public function printfwv(string:String, vars:Object):String {
if (vars == null) return string;
const NOT_EXIST:int = -1;
const ALPHABET:String = "qwertyuiopasdfghjklzxcvbnm_";
const S_TEXT:int = 1;
const S_VAR:int = 2;
const PREFIX:String = "%";
//быстрая проверка на содержание двух %
var iof:int = string.indexOf(PREFIX);
if (iof == NOT_EXIST) {
return string;
}else {
if (string.indexOf(string, iof++) == NOT_EXIST) return string;
}
//
var src:String = string;
var buffer:String = "";
var state:int = S_TEXT;
var var_buff:String = "";
var c:String;
for (var i:int = 0, len:int = src.length; i < len; i++) {
c = src.charAt(i);
switch(state) {
case S_TEXT:
if (PREFIX == c) {
state = S_VAR;
}else {
buffer += c;
}
break;
case S_VAR:
if (ALPHABET.indexOf(c) != -1) {
var_buff += c;
}else {
if (c == PREFIX) {
if (vars[var_buff] == undefined) {
buffer += PREFIX + var_buff;
var_buff = "";
i--;
state = S_TEXT;
}else {
buffer += vars[var_buff];
}
}else{
buffer += PREFIX + var_buff + c;
}
var_buff = "";
state = S_TEXT;
}
break;
}
}
if (state == S_VAR) {
buffer += PREFIX + var_buff;
}
return buffer;
}
первым параметром вы передаете строку типа "bla bla %var% bla bla %var% bla bla %var2%", а вторым объект, если объект содержит переменные с именем var и var2, то вы функция вернет, то что вам нужно
Добавлено через 49 секунд
правда никакой привязки к xml нет, поэтому из xml вам самому придется выдрать строку-шаблон