python xml解析元素AttributeError Non

2024-06-01 07:55:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解析一个大的xml文件,尝试了很多不同的方法,但还是被卡住了。出于安全原因,我不能列出XML,但我可以解释我试图用代码做什么。你知道吗

第一个for循环查看不同的设备并成功地找到它们,第二个for循环正确地标识了特定于每个设备组的规则名称。你知道吗

当我查找附加到logname和/或threat name的元素时,问题就出现了。我想确定哪些节点没有为这些节点分配文本。我尝试了一些没有try语句的想法,但是当第一个想法弹出时,我不断地得到一个错误,这个错误对那个元素没有任何价值。这些正是我想找到和报道的。你知道吗

try语句也被搞砸了,它不再正确地在循环中运行,因为我有太多与设备组关联的规则。你知道吗

非常感谢您的帮助……明天早上开始审计!=]

import xml.etree.ElementTree as ET

tree = ET.parse('/testing/audit/input.xml')

root = tree.getroot()

for dname in root.findall('.//devices/entry/device-group/entry'):
    devicename = dname.get('name')
    for rules in root.findall('.//post-rulebase/security/rules/entry'):
        rulename = rules.get('name')
        logname = rules.find('.//post-rulebase/security/rules/entry/log-setting')
        threatname = rules.find('.//post-rulebase/security/rules/entry/profile-setting/group/member')
        try:
            print devicename + " Rule " + rulename + " has log forwarding set to: " + logname.text
            print devicename + " Rule " + rulename + " has threat set to: " +   threatname.text
            break
        except:
            pass
        else:
            print devicename + " Rule " + rulename + " needs review"

Tags: nameforrootxmlrulepostrulessecurity
1条回答
网友
1楼 · 发布于 2024-06-01 07:55:04

此代码有效。。。。你知道吗

import xml.etree.ElementTree as ET

tree = ET.parse('/testing/audit/input.xml')

root = tree.getroot()

for dname in root.findall('.//devices/entry/device-group/entry'):
devicename = dname.get('name')
for rules in dname.findall('.//post-rulebase/security/rules/entry'):
    rulename = rules.get('name')
    try:
        logname = rules.find('./log-setting')
        threatname = rules.find('./profile-setting/group/member')
        print devicename + " Rule " + rulename + " has log forwarding set to: " + logname.text
        print devicename + " Rule " + rulename + " has threat set to: " + threatname.text
        continue
    except:
        pass
        print devicename + " Rule " + rulename + " needs review"

相关问题 更多 >