#!/usr/bin/python # -*- coding: utf-8 -*- from xml.dom import pulldom import sys,re,resource param = '^'+sys.argv[1]+'$' regexp = re.sub('//','/(*/)+',param) regexp = re.sub('\*','[a-zA-Z]+',regexp) count=0 stack=[] p=pulldom.parse(sys.argv[2]) for i in p: if i[0] == 'START_ELEMENT': stack.append(i[1].nodeName) if re.match(regexp,"/"+"/".join(stack)): count+=1 if i[0] == 'END_ELEMENT': stack.pop() print count