针对已有方法在XML数据上基于SLCA(smallest lowest common ancestor)语义处理查询时存在的冗余计算问题,提出了一种基于列存储的倒排索引CList,用于避免已有方法的倒排表中相同数据重复存储的问题.基于CList,提出了一种自顶向下的查询处理算法TDCOL(top-down SLCA computation based on column storage)来提升系统的处理性能.对于给定查询Q={k1,k2...,km}的每个公共祖先结点,TDCOL在保证仅处理一次的情况下即可得到所有满足条件的结果,因而将时间复杂度降为O(m×|L1ID|×1b |Schkmax(v)|),其中|L1ID|是Q的最短倒排表中包含的不同ID值的数目,Schkmax(v)是所有被处理结点的包含关键字的孩子结点集中的最大集合.最后通过比较各种指标,从不同角度对TDCOL算法的性能优势进行了验证.