func lang(c tree.Ctx, args ...tree.Result) (tree.Result, error) { lStr := args[0].String() var n tree.Elem for _, i := range c.NodeSet { if i.GetNodeType() == tree.NtElem { n = i.(tree.Elem) } else { n = i.GetParent() } for n.GetNodeType() != tree.NtRoot { if attr, ok := tree.GetAttribute(n, "lang", tree.XMLSpace); ok { return checkLang(lStr, attr.Value), nil } n = n.GetParent() } } return tree.Bool(false), nil }