我试图在Python中解析XML字符串。例如:
<policy-maps>
<policy-map>
<type>qos</type>
<name>PROFILE1</name>
<policy-map-rule>
<class-name>voice</class-name>
<class-type>qos</class-type>
<priority-level>1</priority-level>
<police>
<rate>
<value>30</value>
<units>percent</units>
</rate>
</police>
<queue-limit>
<value>17</value>
<unit>kbytes</unit>
</queue-limit>
</policy-map-rule>
<policy-map-rule>
<class-name>video</class-name>
<class-type>qos</class-type>
<police>
<rate>
<value>10</value>
<units>percent</units>
</rate>
<burst>
<value>5000</value>
<units>bytes</units>
</burst>
</police>
</policy-map-rule>
</policy-map>
</policy-maps>
我想提取标签中的所有内容&#34; policy-map&#34;或标签&#34;警察&#34;在某个&#34;政策地图内#34;和&#34;类名&#34;。我已经尝试过我能找到的每一个例子,但似乎没有任何例子正是我想要做的或工作的。有帮助吗?谢谢。
答案 0 :(得分:0)
有很多方法可以为这只猫提供皮肤......但由于您的数据不使用属性,因此转换为dict可能对您来说最简单。 (您可能也喜欢untangle包。)
请注意,在下面的示例中,我使用xmltodict将xml转换为嵌套的有序字典,然后您可以对结果使用标准字典方法。
import xmltodict
import pprint
xml = """
.... YOUR XML GOES HERE
"""
doc = xmltodict.parse(xml)
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(doc['policy-maps']['policy-map']['policy-map-rule'])
产量;
[OrderedDict([('class-name', 'voice'),
('class-type', 'qos'),
('priority-level', '1'),
('police',
OrderedDict([(...)])),
('queue-limit',
OrderedDict([('value', '17'), ('unit', 'kbytes')]))]),
OrderedDict([('class-name', 'video'),
('class-type', 'qos'),
('police',
OrderedDict([(...), (...)]))])]