因此我使用LXML解析/编辑XML文件,看起来像
<abc>
<metadata x="..." y="..." z="...">
...
</abc>
,并希望将其替换为
<abc>
<tag key=x value="...">
<tag key=y value="...">
<tag key=z value="...">
...
</abc>
我该怎么做。我已经提取了x,y,z标签,但现在需要弄清楚如何使用此数据再创建3个标签并将其重新插入etree。
答案 0 :(得分:0)
另一种方法。
from simplified_scrapy import SimplifiedDoc, utils, req
xml = '''
<abc>
<metadata x="111" y="222" z="333" />
...
</abc>
'''
doc = SimplifiedDoc(xml)
metadata = doc.metadata
doc = SimplifiedDoc('<abc></abc>')
abc = doc.abc
for key in metadata:
if key=='tag' or key=='html':
continue
abc.appendChild('<tag key="{0}" value="{1}" />'.format(key,metadata[key]))
print (doc.html)
结果:
<abc><tag key="x" value="111" /><tag key="y" value="222" /><tag key="z" value="333" /></abc>