本文整理汇总了Python中pyasm.common.Xml.get_children方法的典型用法代码示例。如果您正苦于以下问题:Python Xml.get_children方法的具体用法?Python Xml.get_children怎么用?Python Xml.get_children使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.common.Xml
的用法示例。
在下文中一共展示了Xml.get_children方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_action_nodes
# 需要导入模块: from pyasm.common import Xml [as 别名]
# 或者: from pyasm.common.Xml import get_children [as 别名]
def get_action_nodes(my, scope="dependent"):
action_nodes = []
nodes = Xml.get_children(my.node)
for node in nodes:
node_name = Xml.get_node_name(node)
if node_name == "action":
node_scope = Xml.get_attribute(node, "scope")
if scope and node_scope != scope:
continue
action_nodes.append(node)
return action_nodes
示例2: get_action_node
# 需要导入模块: from pyasm.common import Xml [as 别名]
# 或者: from pyasm.common.Xml import get_children [as 别名]
def get_action_node(my, event_name, scope="dependent"):
nodes = Xml.get_children(my.node)
for node in nodes:
node_name = Xml.get_node_name(node)
if node_name == "action":
node_event = Xml.get_attribute(node, "event")
if node_event != event_name:
continue
node_scope = Xml.get_attribute(node, "scope")
if scope and node_scope != scope:
continue
return node
示例3: get_action_options
# 需要导入模块: from pyasm.common import Xml [as 别名]
# 或者: from pyasm.common.Xml import get_children [as 别名]
def get_action_options(my, event_name, scope="dependent"):
options = {}
action_node = my.get_action_node(event_name, scope=scope)
if action_node is None:
return options
nodes = Xml.get_children(action_node)
for node in nodes:
name = Xml.get_node_name(node)
if name == "#text":
continue
value = Xml.get_node_value(node)
options[name] = value
return options
示例4: add_xml_rules
# 需要导入模块: from pyasm.common import Xml [as 别名]
# 或者: from pyasm.common.Xml import get_children [as 别名]
#.........这里部分代码省略.........
rule_key = "%s||%s" % (rule_key, rule_value)
# add a project code qualifier
rule_keys = []
if project_code == '*' and group_type != 'search_filter':
for code in my.project_codes:
key = "%s?project=%s" % (rule_key, code)
rule_keys.append(key)
else:
key= "%s?project=%s" % (rule_key, project_code)
#key = str(key) # may need to stringify unicode string
rule_keys.append(key)
rule_access = xml.get_attribute(rule_node, 'access')
#if rule_access == "":
# raise AccessException("Cannot have empty 'access':\n%s" \
# % xml.to_string(rule_node) )
# if no key is specified, it is considered a DEFAULT
if not rule_keys and not rule_value:
rule_keys = ['__DEFAULT__']
for rule_key in rule_keys:
# check if rule_access exists first, which doesn't for search_filter,
# but it has to go into the rules regardless
# if the rule already exists, take the highest one
if rule_access and rules.has_key(rule_key):
curr_access, cur_attrs = rules[rule_key]
try:
access_enum = my._get_access_enum(rule_access)
if my._get_access_enum(curr_access) > access_enum:
continue
except:
if group_type == "builtin":
continue
else:
raise
rules[rule_key] = rule_access, attrs2
#for rule, values in rules.items():
# print "rule: ", rule, values[0]
# FIXME: this one doesn't support the multi-attr structure
# convert this to a python data structure
group_nodes = xml.get_nodes("rules/group")
for group_node in group_nodes:
group_type = Xml.get_attribute( group_node, "type" )
# get an existing rule set or create a new one
if my.groups.has_key(group_type):
rules = my.groups[group_type]
else:
rules = {}
my.groups[group_type] = rules
# set the default, if specified
group_default = xml.get_attribute( group_node, "default" )
if group_default != "":
rules['__DEFAULT__'] = group_default
# get all of the rule nodes
rule_nodes = Xml.get_children(group_node)
for rule_node in rule_nodes:
project_code='*'
if Xml.get_node_name(rule_node) != 'rule':
continue
rule_key = xml.get_attribute(rule_node, 'key')
rule_access = xml.get_attribute(rule_node, 'access')
rule_project = xml.get_attribute(rule_node, 'project')
if rule_project:
project_code = rule_project
if rule_access == "":
raise AccessException("Cannot have empty 'access':\n%s" \
% xml.to_string(rule_node) )
rule_keys = []
attrs2 = {'key': rule_key}
# add a project code qualifier
if project_code == '*' and group_type != 'search_filter':
for code in my.project_codes:
key = "%s?project=%s" % (rule_key, code)
rule_keys.append(key)
else:
key= "%s?project=%s" % (rule_key, project_code)
rule_keys.append(key)
for rule_key in rule_keys:
rules[rule_key] = rule_access, attrs2
示例5: PageNavContainerWdg
# 需要导入模块: from pyasm.common import Xml [as 别名]
# 或者: from pyasm.common.Xml import get_children [as 别名]
#.........这里部分代码省略.........
<application>
<element name="left_nav">
<display class="tactic.ui.panel.SideBarPanelWdg">
<auto_size>True</auto_size>
</display>
</element>
<element name="main_body">
<display class="tactic.ui.startup.MainWdg"/>
<web/>
</element>
</application>
</config>
'''
return config
def set_state(self, panel_name, widget_class, options, values):
'''this is called by side_bar.js mostly'''
# set the class name
display_node = self.config_xml.get_node("config/application/element[@name='%s']/display" % (panel_name) )
self.config_xml.set_attribute(display_node, "class", widget_class)
# remove all the old options
#display_node = self.config_xml.get_node("config/application/element[@name='%s']/display" % panel_name )
for child_node in self.config_xml.get_children(display_node):
self.config_xml.remove_child(display_node, child_node)
# set the options
for name, value in options.items():
node = self.config_xml.get_node("config/application/element[@name='%s']/display/%s" % (panel_name, name) )
if isinstance( value, basestring ):
#print("WARNING: set application: skipping [%s] with value [%s]" % (name, value))
#continue
element = self.config_xml.create_text_element(name, value)
self.config_xml.append_child(display_node, element)
elif isinstance( value, dict): # if it is a dictionary
# TODO: run recursively.. supports 2 level only now
sub_element = self.config_xml.create_element(name)
self.config_xml.append_child(display_node, element)
for name2, value2 in value.items():
if isinstance(value2, dict):
sub_element2 = self.config_xml.create_element(name2)
self.config_xml.append_child(sub_element, sub_element2)
for name3, value3 in value2.items():
element = self.config_xml.create_text_element(name3, value3)
self.config_xml.append_child(sub_element2, element)
else:
element = self.config_xml.create_text_element(name2, value2)
self.config_xml.append_child(sub_element, element)
# web value node
value_node = self.config_xml.get_node("config/application/element[@name='%s']/web" % (panel_name) )
if value_node != None:
for child_node in self.config_xml.get_children(value_node):