mustache.js 是否可以映射 xml 并使用像 {{/root/Customer}} 这样的 xpath 路由?

Is it possible with mustache.js to map xml and use xpath routes like {{/root/Customer}}?

是否可以使用 mustache.js(或任何其他模板引擎)将 xml 映射到模板并使用类似 xpath 的路由?

Hello {{/root/Customer}} 
You have won {{/root/Prise}} 

有趣的是可以使用带有过滤器和轴的 xpaht 查询(这是 "Json routes" 不可能实现的)。

不回答你的问题:我不认为小胡子可以开箱即用。

在研究类似的问题时(我没有固定在任何模板引擎上)我可以节省一些钱:看看 jath and maybe extract further inspirations from this post.

我通过实现 IDictionary 完成了这个技巧(针对 nushache)。

public class RenderXpath : IDictionary<string,object> 
{
    XElement xElement;
    public RenderXpath(XElement xElement)
    {
        this.xElement = xElement;
    }

    public object this[string key]
    {
        get
        {
            string @value = "";
            var element = xElement.XPathSelectElement(((key as string)??"").Trim());
            if (element.Elements().Count() > 0)
                return new RenderXpath(element); // support loops
            if (element.Value != null)
                return element.Value;
            return @value;
        }
        set
        {
            throw new NotImplementedException();
        }
    }

    public bool ContainsKey(string key)
    {
        return true;
    }

    // all other throws NotImplementedException
    IEnumerator IEnumerable.GetEnumerator()
    {
        throw new NotImplementedException();
    }
}

语法为{{xmlDoc./License/Customer}} 多亏了 mustache,无需转义 '/' 字符。