我有这个代码,我想将具有相同标签的动物分组到一组前。标记等。但在我的代码<dog><dog>
中<dogs><dog/><dog/></dogs>
,我不知道为什么输出没有动物。
输出:
<root>
<zoo>
<some_tag/><some_diff/>
</zoo>
<zoo>
<b/><o/>
</zoo>
</root>
代码:
xml = '`<root>
<zoo>
<some_tag/><some_diff/>
<dog/><dog/>
<cat/><cat/><cat/>
</zoo>
<zoo>
<b/><o/>
<dog/><dog/>
<cat/><cat/><cat/><cat/>
</zoo>
</root>`'
from lxml import etree as et
root = et.fromstring(xml)
node = root.findall('./zoo')
j = False
k = False
for zoo in node:
for animal in zoo:
if 'dog' in animal.tag:
if not j:
dogs = et.SubElement(zoo,'dogs')
dogs.append(animal)
j = True
if 'cat' in animal.tag:
if not k:
cats = et.SubElement(zoo,'cats')
cats.append(animal)
k = True
k = False
j= False