本文整理汇总了Python中xml.etree.cElementTree.XML.get方法的典型用法代码示例。如果您正苦于以下问题:Python XML.get方法的具体用法?Python XML.get怎么用?Python XML.get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml.etree.cElementTree.XML
的用法示例。
在下文中一共展示了XML.get方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: installmtz
# 需要导入模块: from xml.etree.cElementTree import XML [as 别名]
# 或者: from xml.etree.cElementTree.XML import get [as 别名]
def installmtz(package, prefix):
try:
src = resource_filename("%s.resources.maltego" % package, "entities.mtz")
if not os.path.exists(src):
return
prefix = os.path.join(prefix, "config", "Maltego", "Entities")
z = ZipFile(src)
entities = filter(lambda x: x.endswith(".entity"), z.namelist())
for e in entities:
data = z.open(e).read()
xml = XML(data)
category = xml.get("category")
catdir = os.path.join(prefix, category)
if not os.path.exists(catdir):
os.mkdir(catdir)
p = os.path.join(catdir, os.path.basename(e))
print "Installing entity %s to %s..." % (e, p)
with open(p, "wb") as f:
f.write(data)
except ImportError:
pass
示例2: run
# 需要导入模块: from xml.etree.cElementTree import XML [as 别名]
# 或者: from xml.etree.cElementTree.XML import get [as 别名]
def run(args):
opts = parse_args(args)
if path.exists(opts.outfile) and not opts.append and not \
parse_bool('%s already exists. Are you sure you want to overwrite it? [y/N]: ' % repr(opts.outfile),
default='n'):
exit(-1)
entity_source = None
if opts.mtz_file is None:
d = detect_settings_dir()
if maltego_version(d) >= '3.4.0':
print("""
=========================== ERROR: NOT SUPPORTED ===========================
Starting from Maltego v3.4.0 the 'canari generate-entities' command can no
longer generate entity definition files from the Maltego configuration
directory. Entities can only be generated from export files (*.mtz). To
export entities navigate to the 'Manage' tab in Maltego, then click on the
'Export Entities' button and follow the prompts. Once the entities have
been exported, run the following command:
shell> canari generate-entities -m myentities.mtz
=========================== ERROR: NOT SUPPORTED ===========================
""")
exit(-1)
entity_source = DirFile(
path.join(d, 'config', 'Maltego', 'Entities')
)
else:
entity_source = ZipFile(opts.mtz_file)
entity_files = filter(lambda x: x.endswith('.entity'), entity_source.namelist())
namespaces = dict()
excluded_entities = []
if opts.append:
existing_entities = get_existing_entities(opts.outfile)
# excluded_entities.extend([e._type_ for e in existing_entities])
for entity_class in existing_entities:
excluded_entities.extend(entity_class._type_)
if entity_class._type_.endswith('Entity'):
namespaces[entity_class._namespace_] = entity_class.__name__
print 'Generating %s...' % repr(opts.outfile)
outfile = open(opts.outfile, 'ab' if opts.append else 'wb')
if opts.append:
outfile.write('\n\n')
else:
outfile.write('#!/usr/bin/env python\n\nfrom canari.maltego.entities import EntityField, Entity\n\n\n')
for entity_file in entity_files:
xml = XML(entity_source.open(entity_file).read())
id_ = xml.get('id')
if (opts.entity and id_ not in opts.entity) or id_ in excluded_entities:
continue
namespace_entity = id_.split('.')
base_classname = None
namespace = '.'.join(namespace_entity[:-1])
name = namespace_entity[-1]
classname = name
if (opts.namespace and namespace not in opts.namespace) or namespace in opts.exclude_namespace:
continue
if namespace not in namespaces:
base_classname = '%sEntity' % (''.join([n.title() for n in namespace_entity[:-1]]))
namespaces[namespace] = base_classname
outfile.write('class %s(Entity):\n _namespace_ = %s\n\n' % (base_classname, repr(namespace)))
else:
base_classname = namespaces[namespace]
for field in xml.findall('Properties/Fields/Field'):
fields = [
'name=%s' % repr(field.get('name')),
'propname=%s' % repr(normalize_fn(field.get('name'))),
'displayname=%s' % repr(field.get('displayName'))
]
outfile.write('@EntityField(%s)\n' % ', '.join(fields))
outfile.write('class %s(%s):\n pass\n\n\n' % (classname, base_classname))
outfile.close()
print 'done.'
示例3: ZipFile
# 需要导入模块: from xml.etree.cElementTree import XML [as 别名]
# 或者: from xml.etree.cElementTree.XML import get [as 别名]
from sys import argv
zip = ZipFile(argv[1])
entities = filter(lambda x: x.endswith('.entity'), zip.namelist())
def normalize_fn(fn):
# Get rid of starting underscores or numbers and bad chars for var names in python
return sub(r'[^A-Za-z0-9]', '', sub(r'^[^A-Za-z]+', '', fn))
nses = dict()
for e in entities:
xml = XML(zip.open(e).read())
id_ = xml.get('id')
ens = id_.split('.')
base_classname = None
namespace = '.'.join(ens[:-1])
name = ens[-1]
classname = name
if namespace not in nses:
base_classname = '%sEntity' % (''.join([ n.title() for n in ens[:-1] ]))
nses[namespace] = base_classname
print 'class %s(Entity):\n namespace = %s\n\n' % (base_classname, repr(namespace))
else:
base_classname = nses[namespace]
示例4: run
# 需要导入模块: from xml.etree.cElementTree import XML [as 别名]
# 或者: from xml.etree.cElementTree.XML import get [as 别名]
def run(args):
opts = parse_args(args)
if path.exists(opts.outfile) and not opts.append and not \
parse_bool('%s already exists. Are you sure you want to overwrite it? [y/N]: ' % repr(opts.outfile), default='n'):
exit(-1)
ar = DirFile(
path.join(detect_settings_dir(), 'config', 'Maltego', 'Entities')
) if opts.mtz_file is None else ZipFile(opts.mtz_file)
entities = filter(lambda x: x.endswith('.entity'), ar.namelist())
nses = dict()
el = []
if opts.append:
l = diff(opts.outfile)
el.extend([i.type for i in l])
for i in l:
if i.type.endswith('Entity'):
nses[i.namespace] = i.__class__.__name__
print 'Generating %s...' % repr(opts.outfile)
fd = open(opts.outfile, 'ab' if opts.append else 'wb')
if opts.append:
fd.write('\n\n')
else:
fd.write('#!/usr/bin/env python\n\nfrom canari.maltego.entities import EntityField, Entity\n\n\n')
for e in entities:
xml = XML(ar.open(e).read())
id_ = xml.get('id')
if (opts.entity and id_ not in opts.entity) or id_ in el:
continue
ens = id_.split('.')
base_classname = None
namespace = '.'.join(ens[:-1])
name = ens[-1]
classname = name
if (opts.namespace and namespace not in opts.namespace) or namespace in opts.exclude_namespace:
continue
if namespace not in nses:
base_classname = '%sEntity' % (''.join([ n.title() for n in ens[:-1] ]))
nses[namespace] = base_classname
fd.write('class %s(Entity):\n namespace = %s\n\n' % (base_classname, repr(namespace)))
else:
base_classname = nses[namespace]
for f in xml.findall('Properties/Fields/Field'):
fields = [
'name=%s' % repr(f.get('name')),
'propname=%s' % repr(normalize_fn(f.get('name'))),
'displayname=%s' % repr(f.get('displayName'))
]
fd.write('@EntityField(%s)\n' % ', '.join(fields))
fd.write('class %s(%s):\n pass\n\n\n' % (classname, base_classname))
fd.close()
print 'done.'