6 from mutil.XmlExtractor import XmlExtractor
7 from mutil import XmlExtractor as XMLE
8 from pickle import NONE, FALSE, TRUE
10 def eval_class(classs, item):
11 item_hira = item.split(".")
13 class_hira = classs.split(".")
14 if len(class_hira) < len(item_hira):
16 for i in range(len(item_hira)):
17 if item_hira[i] != class_hira[i]:
21 def is_for_print(classs, attrs):
26 if "include" in attrs:
27 include,ilen = eval_class(classs, attrs["include"])
28 if "exclude" in attrs:
29 exclude,elen = eval_class(classs, attrs["exclude"])
30 if ilen > 0 and elen == 0:
32 elif elen > 0 and ilen == 0:
34 elif ilen > 0 and elen > 0:
48 def extract(file, classs, target):
49 source = XmlExtractor()
50 source.openInput(file)
53 out_file = open(target, "w")
55 source.requireChild("document")
56 (ctl,elem, value, attrs) = source.extractElement(XMLE.EC_BEG)
57 while ctl != XMLE.EC_END:
59 raise EnvironmentError("<text> node expected")
60 if is_for_print(classs, attrs):
61 out_file.write(value+"\n")
62 (ctl,elem, value, attrs) = source.extractElement(ctl)